Updated Upstream (Paper)

Upstream has released updates that appears to apply and compile correctly

Paper Changes:
cc477e6a Force Plugins that use delayed tasks for init back in their place
597263fd Don't skip full player connection tick when dead
e2c23475 Revert loaded entity list (#3304)
fa87db6b Move another NetworkManager util into the inner class (#3303)
841c7d18 Make loaded entity list logic more consistent (#3301)
36f34f01 Updated Upstream (Bukkit/CraftBukkit)
5ca5f131 Rebuild all patches using the new rebuild pattern
1ccff6fa Add villager reputation API
5c0bfffa Speed up rebuilding patches and reduce diff
f37381ea Optimize Network Manager to not need synchronization
8f9df2ed Anti Xray cleanup
878c66f1 No-Tick view distance implementation - Closes #3196
b87743c1 Stop copy-on-write operations for updating light data
97a9c972 Optimize isOutsideRange to use distance maps
b4e629a2 Use distance map to optimise entity tracker / Misc Utils
d80d1517 Optimize Entity Ticking to Loaded Chunks only
31d7686d Add item slot helper methods for various inventories (#3221)
75e1e3b3 Mob Goal API
c7bc393a Revert "Don't flush packet queue off main thread"
1abd2bd2 Don't flush packet queue off main thread
a4ed58a9 Clean up Direct Memory Region Files Fix for different Java versions
55e35019 Set cap on JDK per-thread native byte buffer cache
b5101f4f Cleanup Region Files Direct Memory on close
81e655d7 Optimize Voxel Shape Merging
ed9fc11f Sync position on teleportation
9c326fce Nanothing to see here
3e9fc24b Attempt to fix FastLogin maybe
This commit is contained in:
William Blake Galbreath
2020-05-06 20:18:39 -05:00
parent d064334c71
commit e7b1eb157b
43 changed files with 237 additions and 308 deletions

View File

@@ -1,4 +1,4 @@
From 49c857402f8682d8b5e6da6e30af1fbdcd3fb221 Mon Sep 17 00:00:00 2001
From 83354a397f8da9106fa538b50ae6a182722db15d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 4 May 2019 01:02:11 -0500
Subject: [PATCH] Rebrand
@@ -15,7 +15,7 @@ Subject: [PATCH] Rebrand
create mode 100644 src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
diff --git a/pom.xml b/pom.xml
index fd417a9ee..cdb556405 100644
index 0c0051f7f..6ca410444 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,11 +1,11 @@
@@ -75,7 +75,7 @@ index fd417a9ee..cdb556405 100644
<dependency>
<groupId>net.minecrell</groupId>
<artifactId>terminalconsoleappender</artifactId>
@@ -146,7 +160,7 @@
@@ -153,7 +167,7 @@
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
<build>
@@ -84,7 +84,7 @@ index fd417a9ee..cdb556405 100644
<defaultGoal>clean install</defaultGoal> <!-- Paper -->
<plugins>
<plugin>
@@ -154,7 +168,7 @@
@@ -161,7 +175,7 @@
<artifactId>gitdescribe-maven-plugin</artifactId>
<version>1.3</version>
<configuration>
@@ -107,10 +107,10 @@ index cd6e25923..bb227bc0f 100644
);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 98f039834..3bd3e5044 100644
index b952e9efa..89afe0933 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1543,7 +1543,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1544,7 +1544,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {
@@ -241,7 +241,7 @@ index 000000000..d8b408f06
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f49193d9d..d98011b6e 100644
index b89f99a66..a1d3bc7ea 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -204,7 +204,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -1,4 +1,4 @@
From b483582f1d4a909f42738dfdf079a2f9166a8c39 Mon Sep 17 00:00:00 2001
From f87963dc68e9fce84dff4bd5141425122ce305e2 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 9 May 2019 18:09:43 -0500
Subject: [PATCH] Purpur config files
@@ -62,7 +62,7 @@ index e62ca0543..018def64a 100644
// Paper end
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 899c535c4..d0896d944 100644
index 0e6368d0f..352cbe6c0 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -85,6 +85,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -364,7 +364,7 @@ index 000000000..7d983d9a5
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 8cf8a46a7..55f157433 100644
index a1d3bc7ea..a3024da0f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -814,6 +814,7 @@ public final class CraftServer implements Server {
@@ -411,10 +411,10 @@ index 8cf8a46a7..55f157433 100644
public void restart() {
org.spigotmc.RestartCommand.restart();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 093dbeae2..e05bfa352 100644
index 93340e947..05e8da40f 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -138,6 +138,14 @@ public class Main {
@@ -139,6 +139,14 @@ public class Main {
.describedAs("Yml file");
// Paper end

View File

@@ -1,9 +1,10 @@
From 774014565ecf69c694e3f94091d3de52240e49d3 Mon Sep 17 00:00:00 2001
From 129bb5241948459108c22dd3c2eaa78463c9c19e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 6 Feb 2020 19:53:59 -0600
Subject: [PATCH] Ridables
---
.../paper/entity/ai/MobGoalHelper.java | 7 +
.../net/minecraft/server/AxisAlignedBB.java | 2 +
.../server/ControllerLookDolphin.java | 4 +-
.../net/minecraft/server/ControllerMove.java | 6 +-
@@ -88,7 +89,6 @@ Subject: [PATCH] Ridables
.../java/net/minecraft/server/FoodInfo.java | 1 +
.../java/net/minecraft/server/ItemDye.java | 1 +
.../java/net/minecraft/server/MathHelper.java | 2 +
.../net/minecraft/server/PathfinderGoal.java | 1 +
.../minecraft/server/PathfinderGoalSwell.java | 5 +-
.../minecraft/server/ProjectileHelper.java | 1 +
src/main/java/net/minecraft/server/Vec3D.java | 3 +
@@ -104,7 +104,7 @@ Subject: [PATCH] Ridables
.../pathfinder/PathfinderGoalHasRider.java | 21 +
.../craftbukkit/entity/CraftEntity.java | 27 +
src/main/resources/purpur.lang | 4 +-
100 files changed, 3623 insertions(+), 211 deletions(-)
100 files changed, 3629 insertions(+), 211 deletions(-)
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -114,6 +114,24 @@ Subject: [PATCH] Ridables
create mode 100644 src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
index d6ee94107..e8e0b3d25 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
@@ -118,6 +118,13 @@ public class MobGoalHelper {
ignored.add("selector_1");
ignored.add("selector_2");
ignored.add("wrapped");
+ // Purpur start
+ ignored.add("horse_abstract_1");
+ ignored.add("llama_3");
+ ignored.add("llama_4");
+ ignored.add("find_crystal_goal");
+ ignored.add("orbit_crystal_goal");
+ // Purpur end
bukkitMap.put(EntityInsentient.class, Mob.class);
bukkitMap.put(EntityAgeable.class, Ageable.class);
diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java
index 3fdb52007..7e67292c2 100644
--- a/src/main/java/net/minecraft/server/AxisAlignedBB.java
@@ -198,7 +216,7 @@ index 816d301f1..f7344d3ae 100644
this.C = true;
return this;
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 14ba037c1..f630edb37 100644
index 8820e4b65..36088330e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -79,7 +79,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -237,7 +255,7 @@ index 14ba037c1..f630edb37 100644
private float headHeight;
// CraftBukkit start
public boolean persist = true;
@@ -857,6 +857,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -872,6 +872,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return vec3d1;
}
@@ -245,7 +263,7 @@ index 14ba037c1..f630edb37 100644
public static double b(Vec3D vec3d) {
return vec3d.x * vec3d.x + vec3d.z * vec3d.z;
}
@@ -1183,6 +1184,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1198,6 +1199,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return flag;
}
@@ -253,7 +271,7 @@ index 14ba037c1..f630edb37 100644
private boolean l() {
return this.world.getType(new BlockPosition(this)).getBlock() == Blocks.BUBBLE_COLUMN;
}
@@ -1196,8 +1198,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1211,8 +1213,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.isInWater() || this.isInRain() || this.l();
}
@@ -264,7 +282,7 @@ index 14ba037c1..f630edb37 100644
}
public boolean aA() {
@@ -1328,6 +1331,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1343,6 +1346,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.inLava;
}
@@ -272,7 +290,7 @@ index 14ba037c1..f630edb37 100644
public void a(float f, Vec3D vec3d) {
Vec3D vec3d1 = a(vec3d, f, this.yaw);
@@ -2162,7 +2166,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2177,7 +2181,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
} else {
this.passengers.add(entity);
}
@@ -287,7 +305,7 @@ index 14ba037c1..f630edb37 100644
}
return true; // CraftBukkit
}
@@ -2197,6 +2207,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2212,6 +2222,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
// Spigot end
@@ -300,7 +318,7 @@ index 14ba037c1..f630edb37 100644
this.passengers.remove(entity);
entity.j = 60;
}
@@ -2365,6 +2381,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2380,6 +2396,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.setFlag(4, flag);
}
@@ -308,7 +326,7 @@ index 14ba037c1..f630edb37 100644
public boolean bt() {
return this.glowing || this.world.isClientSide && this.getFlag(6);
}
@@ -2583,6 +2600,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2598,6 +2615,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void setHeadRotation(float f) {}
@@ -316,7 +334,7 @@ index 14ba037c1..f630edb37 100644
public void l(float f) {}
public boolean bA() {
@@ -3437,4 +3455,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3452,4 +3470,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
void accept(Entity entity, double d0, double d1, double d2);
}
@@ -1304,7 +1322,7 @@ index 77885f67f..63f5969b1 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index 2887cb14e..a6a79f5e9 100644
index aecdaacfc..ab1747198 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -2744,10 +2762,10 @@ index 1fdc248ba..a5a36af21 100644
protected void initAttributes() {
super.initAttributes();
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
index 3706c31aa..b20f4afd3 100644
index 8b199971b..53bc31287 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -20,6 +20,23 @@ public class EntityMushroomCow extends EntityCow {
@@ -19,6 +19,23 @@ public class EntityMushroomCow extends EntityCow {
super(entitytypes, world);
}
@@ -3387,7 +3405,7 @@ index 0357c9da9..98a657cec 100644
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false));
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 90c5dc1d6..db54bcc7e 100644
index b37301598..6a7a9dc3d 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1291,6 +1291,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -3757,7 +3775,7 @@ index 6be29f307..189515b0f 100644
public int es() {
return 5;
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java
index d5ffdc110..d4f2642d3 100644
index f63528ca3..43eefa46c 100644
--- a/src/main/java/net/minecraft/server/EntitySheep.java
+++ b/src/main/java/net/minecraft/server/EntitySheep.java
@@ -55,10 +55,28 @@ public class EntitySheep extends EntityAnimal {
@@ -4065,10 +4083,10 @@ index 2efc18df9..1469e3b23 100644
} else {
this.h = ControllerMove.Operation.WAIT;
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index 07ca1a498..941873513 100644
index dee55c5de..65d746899 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -14,12 +14,31 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -13,12 +13,31 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
super(entitytypes, world);
}
@@ -4100,7 +4118,7 @@ index 07ca1a498..941873513 100644
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 10, true, false, (entityliving) -> {
return entityliving instanceof IMonster;
}));
@@ -73,6 +92,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -72,6 +91,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
return;
}
@@ -4108,16 +4126,16 @@ index 07ca1a498..941873513 100644
IBlockData iblockdata = Blocks.SNOW.getBlockData();
for (int l = 0; l < 4; ++l) {
@@ -119,7 +139,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
this.world.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -115,7 +135,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
if (!this.world.isClientSide) {
// CraftBukkit start
if (!CraftEventFactory.handlePlayerShearEntityEvent(entityhuman, this, itemstack, enumhand)) {
- return false;
+ return tryRide(entityhuman, enumhand); // Purpur;
+ return tryRide(entityhuman, enumhand); // Purpur
}
// CraftBukkit end
this.setHasPumpkin(false);
@@ -130,7 +150,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -126,7 +146,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
return true;
} else {
@@ -4593,7 +4611,7 @@ index cf274666c..d919f44ab 100644
Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX(), this.c - EntityVex.this.locY(), this.d - EntityVex.this.locZ());
double d0 = vec3d.f();
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index ef2ee68cd..c78a77a4a 100644
index 1094324d0..ee6b133d1 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -68,6 +68,28 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -4743,7 +4761,7 @@ index 1432d3f6b..447387bd7 100644
this.targetSelector.a(2, this.bz);
this.targetSelector.a(3, this.bA);
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 8977c3516..ad97fe7ea 100644
index 2f466af4d..8c1fa3717 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -18,7 +18,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -5184,18 +5202,6 @@ index c4aa38ddf..3d52a396e 100644
public static float g(float f, float f1, float f2) {
return f1 + f * (f2 - f1);
}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java
index 93009d83f..1a8ebb673 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
@@ -29,6 +29,7 @@ public abstract class PathfinderGoal {
public void e() {}
+ public void setTypes(EnumSet<PathfinderGoal.Type> types) { this.a(types); } // Purpur - OBFHELPER
public void a(EnumSet<PathfinderGoal.Type> enumset) {
// Paper start - remove streams from pathfindergoalselector
this.goalTypes.clear();
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java b/src/main/java/net/minecraft/server/PathfinderGoalSwell.java
index e07c7674a..3c077b687 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java
@@ -5260,10 +5266,10 @@ index 0c7f094e5..62a081006 100644
return new Vec3D(this.x * d0, this.y * d1, this.z * d2);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index d0896d944..28c8fd3d4 100644
index 352cbe6c0..4442f5cc0 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -985,6 +985,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -990,6 +990,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
}
@@ -5271,7 +5277,7 @@ index d0896d944..28c8fd3d4 100644
public boolean a(AxisAlignedBB axisalignedbb, Material material) {
int i = MathHelper.floor(axisalignedbb.minX);
int j = MathHelper.f(axisalignedbb.maxX);
@@ -1620,4 +1621,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1625,4 +1626,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@Override public BiomeManager d() {
return this.biomeManager;
}

View File

@@ -1,4 +1,4 @@
From f93e01c96967071c18cd68ba86a5e21168256f73 Mon Sep 17 00:00:00 2001
From 9f076b9cec808602cb65e0ed2324846ffacd6218 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sun, 15 Dec 2019 12:53:59 -0600
Subject: [PATCH] Disable outdated build check
@@ -8,10 +8,10 @@ Subject: [PATCH] Disable outdated build check
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index e05bfa352..9f61c266c 100644
index 05e8da40f..717c2759f 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -220,7 +220,7 @@ public class Main {
@@ -221,7 +221,7 @@ public class Main {
System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper
}

View File

@@ -1,4 +1,4 @@
From ee88642c8335366ee44406a6fe24d5f9ffebf436 Mon Sep 17 00:00:00 2001
From a51f4b1ec17222b8c99220ecc19fdec9bb881754 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 4 May 2019 01:10:30 -0500
Subject: [PATCH] Cows eat mushrooms
@@ -11,10 +11,10 @@ Subject: [PATCH] Cows eat mushrooms
4 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index f630edb37..3e9406b15 100644
index 36088330e..cdf908cc1 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1081,6 +1081,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1096,6 +1096,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
@@ -22,7 +22,7 @@ index f630edb37..3e9406b15 100644
public void a(SoundEffect soundeffect, float f, float f1) {
if (!this.isSilent()) {
this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), soundeffect, this.getSoundCategory(), f, f1);
@@ -2627,6 +2628,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2642,6 +2643,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.invulnerable = flag;
}

View File

@@ -1,4 +1,4 @@
From 1e6fed4c8ec31bc74507375d2da965338dcb24cb Mon Sep 17 00:00:00 2001
From 1d65387a081f39fa4878f89bb059b6e142e3ad16 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 3 May 2019 23:53:16 -0500
Subject: [PATCH] Fix cow rotation when shearing mooshroom
@@ -8,10 +8,10 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
index b20f4afd3f..02d76a6c61 100644
index 53bc31287..bf835aaf9 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -118,7 +118,13 @@ public class EntityMushroomCow extends EntityCow {
@@ -114,7 +114,13 @@ public class EntityMushroomCow extends EntityCow {
entitycow.setPositionRotation(this.locX(), this.locY(), this.locZ(), this.yaw, this.pitch);
entitycow.setHealth(this.getHealth());

View File

@@ -1,4 +1,4 @@
From 7eb5dc2697e63f21e355f411c5299e8427608824 Mon Sep 17 00:00:00 2001
From fe16df95ac31d875b31c4deae029b3f6586634b9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 9 May 2019 18:26:06 -0500
Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
@@ -25,10 +25,10 @@ index f7344d3ae..f6c0165f9 100644
return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic();
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index d91c54fa9..0d5e942a0 100644
index cdf908cc1..c8afacb64 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1427,6 +1427,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1442,6 +1442,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return d3 * d3 + d4 * d4 + d5 * d5;
}
@@ -36,7 +36,7 @@ index d91c54fa9..0d5e942a0 100644
public double h(Entity entity) {
return this.c(entity.getPositionVector());
}
@@ -1956,14 +1957,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1971,14 +1972,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.a(new ItemStack(imaterial), (float) i);
}

View File

@@ -1,4 +1,4 @@
From d661297b2f62eea8c5b474b4ded7973ec8e026fd Mon Sep 17 00:00:00 2001
From 0cdfff808b4570fe20e44a30c12880318b2942f6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 3 May 2019 23:58:44 -0500
Subject: [PATCH] Snowman drop and put back pumpkin
@@ -9,10 +9,10 @@ Subject: [PATCH] Snowman drop and put back pumpkin
2 files changed, 21 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index 941873513..efc2205f7 100644
index 65d746899..3f6f8ad45 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -8,6 +8,7 @@ import org.bukkit.event.player.PlayerShearEntityEvent;
@@ -7,6 +7,7 @@ import org.bukkit.craftbukkit.event.CraftEventFactory;
public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -20,7 +20,7 @@ index 941873513..efc2205f7 100644
private static final DataWatcherObject<Byte> b = DataWatcher.a(EntitySnowman.class, DataWatcherRegistry.a);
public EntitySnowman(EntityTypes<? extends EntitySnowman> entitytypes, World world) {
@@ -146,9 +147,25 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -142,9 +143,25 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
itemstack.damage(1, entityhuman, (entityhuman1) -> {
entityhuman1.broadcastItemBreak(enumhand);
});

View File

@@ -1,4 +1,4 @@
From df00076495ac61bf6978a5d5d1d66146d06ad231 Mon Sep 17 00:00:00 2001
From 63a27259e3672fa56ce6c6952ec89b6b9caeba91 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 29 Jun 2019 02:32:40 -0500
Subject: [PATCH] Controllable Minecarts
@@ -11,10 +11,10 @@ Subject: [PATCH] Controllable Minecarts
4 files changed, 76 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 0d5e942a0..478ddf34e 100644
index c8afacb64..b64e287db 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1328,6 +1328,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1343,6 +1343,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.inLava = true;
}

View File

@@ -1,4 +1,4 @@
From 154cd96b04812374e0b146234d568ee7c0b90483 Mon Sep 17 00:00:00 2001
From 8d6b566ea1808ad7ec747ea5224fc9f6c10cfabd Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 6 Jul 2019 17:00:04 -0500
Subject: [PATCH] Dont send useless entity packets
@@ -10,10 +10,10 @@ Subject: [PATCH] Dont send useless entity packets
3 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 3a88c9a67..1f7c8f7da 100644
index 6d3b34ead..8d4bcd34c 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -162,6 +162,7 @@ public class EntityTrackerEntry {
@@ -163,6 +163,7 @@ public class EntityTrackerEntry {
this.o = 0;
packet1 = new PacketPlayOutEntityTeleport(this.tracker);
}
@@ -21,7 +21,7 @@ index 3a88c9a67..1f7c8f7da 100644
}
if ((this.e || this.tracker.impulse || this.tracker instanceof EntityLiving && ((EntityLiving) this.tracker).isGliding()) && this.tickCounter > 0) {
@@ -248,6 +249,22 @@ public class EntityTrackerEntry {
@@ -249,6 +250,22 @@ public class EntityTrackerEntry {
}

View File

@@ -1,4 +1,4 @@
From c3a713fef3eb8bae961209d6dad09202bac0657e Mon Sep 17 00:00:00 2001
From 3a361398ad21e98a81237dd15cff86cd3aa94201 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 8 Aug 2019 15:29:15 -0500
Subject: [PATCH] Implement AFK API
@@ -18,10 +18,10 @@ Subject: [PATCH] Implement AFK API
11 files changed, 111 insertions(+), 25 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 153596b94..eed7878a4 100644
index b64e287db..944199404 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1420,6 +1420,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1435,6 +1435,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return MathHelper.c(f * f + f1 * f1 + f2 * f2);
}
@@ -50,7 +50,7 @@ index 27cfc6654..d62174e9c 100644
super(EntityTypes.PLAYER, world);
this.bV = ItemStack.a;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 192ec4378..40a2308e4 100644
index f3278d356..219a274f9 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1624,8 +1624,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -171,10 +171,10 @@ index 1398c47a2..0bf1a14b7 100644
public static Predicate<Entity> a(double d0, double d1, double d2, double d3) {
double d4 = d3 * d3;
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 2e6411100..1cfe6709c 100644
index c61edea48..f641aa30c 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -235,6 +235,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -233,6 +233,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (this.player.F() > 0L && this.minecraftServer.getIdleTimeout() > 0 && SystemUtils.getMonotonicMillis() - this.player.F() > (long) (this.minecraftServer.getIdleTimeout() * 1000 * 60)) {
@@ -187,7 +187,7 @@ index 2e6411100..1cfe6709c 100644
this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854
this.disconnect(new ChatMessage("multiplayer.disconnect.idling", new Object[0]));
}
@@ -451,6 +457,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -449,6 +455,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -196,7 +196,7 @@ index 2e6411100..1cfe6709c 100644
// Skip the first time we do this
if (true) { // Spigot - don't skip any move events
Location oldTo = to.clone();
@@ -1135,6 +1143,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1134,6 +1142,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -206,7 +206,7 @@ index 2e6411100..1cfe6709c 100644
if (from.getX() != Double.MAX_VALUE) {
Location oldTo = to.clone();
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index fc3a41e35..c85639e48 100644
index a4a441fea..c4a09eda3 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -405,7 +405,7 @@ public class WorldServer extends World {
@@ -250,7 +250,7 @@ index d6405b2ec..41dd1b861 100644
public boolean batRidableInWater = false;
public boolean batRequireShiftToMount = true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3515b7268..00f7fc3ec 100644
index dcbda5b35..c14493929 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2079,4 +2079,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -276,7 +276,7 @@ index 3515b7268..00f7fc3ec 100644
+ // Purpur end
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index d873b8cf3..9d9cc06f0 100644
index f735217e7..818f8070c 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -207,6 +207,7 @@ public class ActivationRange

View File

@@ -1,4 +1,4 @@
From b14034a9f9af83c9873e567ebbe6bb8626abb7a7 Mon Sep 17 00:00:00 2001
From 30c61bc04a59a9312d587f60881a58f9703c032a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 16 Jan 2020 14:59:16 -0600
Subject: [PATCH] Make the GUI better
@@ -88,10 +88,10 @@ index 018def64a..fe474e4eb 100644
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 3bd3e5044..8207e7f8a 100644
index 89afe0933..a8d572aa4 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1350,6 +1350,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1351,6 +1351,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
return true;
}

View File

@@ -1,4 +1,4 @@
From 9789cabef2b4c2a0913ff7881b5d582f1eee1a44 Mon Sep 17 00:00:00 2001
From 6c262a836b9e397bba5943f9f130ecdf09a26063 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 11 Jan 2020 23:12:52 -0600
Subject: [PATCH] Add EntityPortalReadyEvent
@@ -86,7 +86,7 @@ index 09c7c1318..6880cdd7f 100644
break;
// CraftBukkit start - add the block to our list
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 7658d257d..ac814f4ab 100644
index 944199404..ceba4f355 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -169,9 +169,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -102,7 +102,7 @@ index 7658d257d..ac814f4ab 100644
private boolean invulnerable;
protected UUID uniqueID;
protected String am;
@@ -2268,6 +2268,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2283,6 +2283,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.world.getMethodProfiler().enter("portal");
this.ag = i;
this.portalCooldown = this.ba();
@@ -141,7 +141,7 @@ index f84dd6d9b..f50e9670b 100644
}
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 9b8739485..e1387ddce 100644
index c4a09eda3..71719ce63 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -75,7 +75,7 @@ public class WorldServer extends World {

View File

@@ -1,4 +1,4 @@
From caa69a1bbf529f8da69d513e1e346436695598e8 Mon Sep 17 00:00:00 2001
From 78083ab2e5aeb0c439fbb0d8565427b7213b4524 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 23 Jul 2019 10:07:16 -0500
Subject: [PATCH] Implement lagging threshold
@@ -10,7 +10,7 @@ Subject: [PATCH] Implement lagging threshold
3 files changed, 14 insertions(+)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8207e7f8a..4d25bd747 100644
index a8d572aa4..533230432 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -184,6 +184,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -21,7 +21,7 @@ index 8207e7f8a..4d25bd747 100644
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end
@@ -928,6 +929,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -929,6 +930,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
recentTps[1] = tps5.getAverage();
recentTps[2] = tps15.getAverage();
// Paper end
@@ -46,11 +46,11 @@ index d3e1c8c40..ab20fa2fa 100644
private static void dontSendUselessEntityPackets() {
dontSendUselessEntityPackets = getBoolean("settings.dont-send-useless-entity-packets", dontSendUselessEntityPackets);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 55f157433..44b3dca47 100644
index a3024da0f..0b474f64e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2246,4 +2246,11 @@ public final class CraftServer implements Server {
return net.minecraft.server.MinecraftServer.getServer().hasStopped();
@@ -2252,4 +2252,11 @@ public final class CraftServer implements Server {
return mobGoals;
}
// Paper end
+

View File

@@ -1,4 +1,4 @@
From 01f528231a8963f906674a5e0f567d0853d07472 Mon Sep 17 00:00:00 2001
From 35403d1858efe17b7c06d9e140bb07172191be25 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:06:20 -0500
Subject: [PATCH] Climbing should not bypass cramming gamerule
@@ -17,10 +17,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
10 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 7ca7a148b..a8b1f4892 100644
index ceba4f355..ae119067e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1555,6 +1555,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1570,6 +1570,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean isCollidable() {

View File

@@ -1,4 +1,4 @@
From 4ec72eea0a0d8df4c68aab0c857d79a81f05dc8b Mon Sep 17 00:00:00 2001
From 008c94f5ef0faf47199d34ebe95cfca35dba957e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 26 May 2019 15:19:14 -0500
Subject: [PATCH] Bring back server name
@@ -21,10 +21,10 @@ index 0c3ec8357..309f5562b 100644
public final boolean spawnNpcs = this.getBoolean("spawn-npcs", true);
public final boolean pvp = this.getBoolean("pvp", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 44b3dca47..68c7dbdb8 100644
index 0b474f64e..047d48873 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2248,6 +2248,11 @@ public final class CraftServer implements Server {
@@ -2254,6 +2254,11 @@ public final class CraftServer implements Server {
// Paper end
// Purpur start

View File

@@ -1,4 +1,4 @@
From 6b5a1fa86ca426fa82857f6d4dd082970eefe878 Mon Sep 17 00:00:00 2001
From 4f27c69dd03c244d9f695afa6313b48ba67fce4d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 11 Oct 2019 00:17:39 -0500
Subject: [PATCH] Alternative Keepalive Handling
@@ -22,7 +22,7 @@ index 8e93f1540..470f92c4f 100644
return this.a;
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 1cfe6709c..d89a30659 100644
index f641aa30c..f83a35c9f 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -75,6 +75,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -33,7 +33,7 @@ index 1cfe6709c..d89a30659 100644
// CraftBukkit start - multithreaded fields
private volatile int chatThrottle;
private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle");
@@ -203,6 +204,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -201,6 +202,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
long currentTime = SystemUtils.getMonotonicMillis();
long elapsedTime = currentTime - this.getLastPing();

View File

@@ -1,4 +1,4 @@
From a1fd8828f3b58853f6a00532529360299d277870 Mon Sep 17 00:00:00 2001
From 1701f8bd731b30777cb1513bb38f32408ecba9e3 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 28 Jul 2019 01:27:37 -0500
Subject: [PATCH] Add 5 second tps average in /tps
@@ -10,7 +10,7 @@ Subject: [PATCH] Add 5 second tps average in /tps
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 4d25bd747..7a7c9213d 100644
index 533230432..493d9efe6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -183,7 +183,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -22,7 +22,7 @@ index 4d25bd747..7a7c9213d 100644
public boolean lagging = false; // Purpur
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end
@@ -844,6 +844,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -845,6 +845,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0;
private long catchupTime = 0;
@@ -30,7 +30,7 @@ index 4d25bd747..7a7c9213d 100644
public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -921,13 +922,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -922,13 +923,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
{
final long diff = curTime - tickSection;
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
@@ -52,7 +52,7 @@ index 4d25bd747..7a7c9213d 100644
lagging = recentTps[0] < net.pl3x.purpur.PurpurConfig.laggingThreshold; // Purpur
tickSection = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 68c7dbdb8..bec429414 100644
index 047d48873..869286b09 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2058,6 +2058,7 @@ public final class CraftServer implements Server {

View File

@@ -1,4 +1,4 @@
From 5eba98dc95a0d3f676125a712aa916ec6531031e Mon Sep 17 00:00:00 2001
From 40d9faf97a0bfc0e2b4a0fdba3f4018a5787663f Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 7 Oct 2019 00:15:37 -0500
Subject: [PATCH] Add API for Villager#resetOffers()
@@ -35,13 +35,13 @@ index 9b75c67c7..ddd19aa2f 100644
protected void a(MerchantRecipeList merchantrecipelist, VillagerTrades.IMerchantRecipeOption[] avillagertrades_imerchantrecipeoption, int i) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
index a8384081c..f78a23e42 100644
index 19409c7a2..d9e19648f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
@@ -124,4 +124,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
public static VillagerProfession bukkitToNmsProfession(Profession bukkit) {
return IRegistry.VILLAGER_PROFESSION.get(CraftNamespacedKey.toMinecraft(bukkit.getKey()));
@@ -164,4 +164,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
}
}
// Paper end
+
+ // Purpur start
+ @Override

View File

@@ -1,4 +1,4 @@
From 3d083e02e266b26cc31944bf3df22bc1823e4b8d Mon Sep 17 00:00:00 2001
From 1d30eeeb7722d1dc6a30725d763f2724f7d8906a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 01:42:50 -0500
Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases
@@ -9,10 +9,10 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 28c8fd3d4..0c4aae6ce 100644
index 4442f5cc0..71a47ca2a 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1427,8 +1427,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1432,8 +1432,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return blockposition;
}
@@ -25,7 +25,7 @@ index 28c8fd3d4..0c4aae6ce 100644
public boolean a(EntityHuman entityhuman, BlockPosition blockposition) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 83bd0a95d..05d3a0dcc 100644
index acf854322..ba8b0e756 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -383,12 +383,16 @@ public class CraftWorld implements World {

View File

@@ -1,4 +1,4 @@
From db022ecbbae92bbacaf3e880d56313d3cbf8807d Mon Sep 17 00:00:00 2001
From f92c808c4d70752623932d33a603c811a8a05097 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 28 Dec 2019 04:21:54 -0600
Subject: [PATCH] Add permission for F3+N debug
@@ -8,10 +8,10 @@ Subject: [PATCH] Add permission for F3+N debug
1 file changed, 1 insertion(+)
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index edf9df8c8..642160065 100644
index 9786f110c..5155537e7 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -973,6 +973,7 @@ public abstract class PlayerList {
@@ -975,6 +975,7 @@ public abstract class PlayerList {
} else {
b0 = (byte) (24 + i);
}

View File

@@ -1,4 +1,4 @@
From bc52f2bbaf2e74b173968089b5ddcac97876285a Mon Sep 17 00:00:00 2001
From bc95738e40b609fe775192630e50327feb046e79 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 3 Oct 2019 18:08:03 -0500
Subject: [PATCH] Allow leashing villagers
@@ -23,10 +23,10 @@ index bf9d044b0..3adc3434e 100644
if (CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman).isCancelled()) {
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutAttachEntity(this, this.getLeashHolder()));
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index ec457de62..f67195de9 100644
index d2680bb09..0abf72871 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -1015,4 +1015,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -1016,4 +1016,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
this.bL = restocksToday;
}
// Paper end

View File

@@ -1,4 +1,4 @@
From d6c311e7c232a6269e25a05fb3136ef4b8aa698c Mon Sep 17 00:00:00 2001
From c6a8dc971d2342d520ab4deb98e220dcc8fa0b04 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Wed, 22 Jan 2020 20:13:40 -0600
Subject: [PATCH] UPnP Port Forwarding Service
@@ -14,7 +14,7 @@ Subject: [PATCH] UPnP Port Forwarding Service
create mode 100644 src/main/java/net/pl3x/purpur/gui/info/UPnPComponent.java
diff --git a/pom.xml b/pom.xml
index 07c50510c..5ecec5c20 100644
index 6ca410444..46101cdbe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,12 @@
@@ -30,7 +30,7 @@ index 07c50510c..5ecec5c20 100644
<!-- Purpur end -->
<dependency>
<groupId>net.minecrell</groupId>
@@ -149,6 +155,10 @@
@@ -156,6 +162,10 @@
<id>spigotmc-public</id>
<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
</repository>
@@ -78,7 +78,7 @@ index fe474e4eb..18fdaf53e 100644
// this.a((PlayerList) (new DedicatedPlayerList(this))); // Spigot - moved up
server.loadPlugins();
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 7a7c9213d..971466e2a 100644
index 493d9efe6..f6260c34b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -187,6 +187,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -89,7 +89,7 @@ index 7a7c9213d..971466e2a 100644
public MinecraftServer(OptionSet options, Proxy proxy, DataFixer datafixer, CommandDispatcher commanddispatcher, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache, WorldLoadListenerFactory worldloadlistenerfactory, String s) {
super("Server");
@@ -737,6 +738,15 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -738,6 +739,15 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
// CraftBukkit end
MinecraftServer.LOGGER.info("Stopping server");
MinecraftTimings.stopServer(); // Paper

View File

@@ -1,4 +1,4 @@
From 8daf1ef38600e2b66b52aec6333aa6ba92ad17de Mon Sep 17 00:00:00 2001
From 0237527ce0f7c3b8ff3b2e2a513d8ad51484356b Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 18 Feb 2020 20:07:08 -0600
Subject: [PATCH] Add option to disable saving projectiles to disk
@@ -15,7 +15,7 @@ Subject: [PATCH] Add option to disable saving projectiles to disk
8 files changed, 58 insertions(+)
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 57a6e7c13..89fa4f0a9 100644
index fa893b14b..a60e4ef36 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -437,6 +437,7 @@ public class ChunkRegionLoader {
@@ -27,10 +27,10 @@ index 57a6e7c13..89fa4f0a9 100644
// Paper start
if (asyncsavedata == null && !entity.dead && (int) Math.floor(entity.locX()) >> 4 != chunk.getPos().x || (int) Math.floor(entity.locZ()) >> 4 != chunk.getPos().z) {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 8304b42cc..b626c6ada 100644
index ae119067e..6406e6c5d 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1572,6 +1572,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1587,6 +1587,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}

View File

@@ -1,4 +1,4 @@
From 12201a8ab87a002d24b9d088f94da98cd3bf81b8 Mon Sep 17 00:00:00 2001
From 78498ce0b82d11b1ec78e6a598e14fb8a4e2b1db Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 22 Feb 2020 15:54:08 -0600
Subject: [PATCH] Add item entity options
@@ -10,10 +10,10 @@ Subject: [PATCH] Add item entity options
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index b626c6ada..ecccbe12a 100644
index 6406e6c5d..e5a2414c1 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1303,6 +1303,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1318,6 +1318,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}

View File

@@ -1,4 +1,4 @@
From 88244c3a5893802b573d7661b5bd6958c906ad2e Mon Sep 17 00:00:00 2001
From 62230b26b7bf0f5f96ad902dc0d3fa5474d12ec5 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 27 Feb 2020 21:42:19 -0600
Subject: [PATCH] Configurable void damage height
@@ -9,10 +9,10 @@ Subject: [PATCH] Configurable void damage height
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index ecccbe12a..22033b82d 100644
index e5a2414c1..f04319b1f 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -487,7 +487,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -502,7 +502,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
// Paper start
protected void performVoidDamage() {

View File

@@ -1,4 +1,4 @@
From 097e37ea5cea8ea5ab46607e92477b4523d062a0 Mon Sep 17 00:00:00 2001
From ef29b912a54e3489dfada87a8006f210cd2e3681 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 6 Mar 2020 13:37:26 -0600
Subject: [PATCH] Fix the dead lagging the server
@@ -9,10 +9,10 @@ Subject: [PATCH] Fix the dead lagging the server
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index f2fb5404a..bff644763 100644
index f04319b1f..074a0ee0c 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1389,7 +1389,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1404,7 +1404,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.pitch = MathHelper.a(f1, -90.0F, 90.0F) % 360.0F;
this.lastYaw = this.yaw;
this.lastPitch = this.pitch;

View File

@@ -1,4 +1,4 @@
From 7bbb5d4e67c00a878e483cd207408c9b08f05fdb Mon Sep 17 00:00:00 2001
From 9776c64707afaad5f98971260985d922230e8f1a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 21 Mar 2020 11:47:39 -0500
Subject: [PATCH] Configurable server mod name
@@ -9,10 +9,10 @@ Subject: [PATCH] Configurable server mod name
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 971466e2a..1b76ce463 100644
index f6260c34b..6e1d698af 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1561,7 +1561,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1562,7 +1562,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {

View File

@@ -1,4 +1,4 @@
From e22a0f8752cc9b543d91067bc6140ab98ce09ff6 Mon Sep 17 00:00:00 2001
From 3547892fa751381762e0de55111d29cb091ff6c3 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 26 Mar 2020 19:06:22 -0500
Subject: [PATCH] Configurable TPS Catchup
@@ -9,10 +9,10 @@ Subject: [PATCH] Configurable TPS Catchup
2 files changed, 12 insertions(+)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1b76ce463..e9f1fd78a 100644
index 6e1d698af..902a5f98f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -964,6 +964,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -965,6 +965,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.methodProfiler.exitEnter("nextTickWait");
this.ac = true;
this.ab = Math.max(SystemUtils.getMonotonicMillis() + 50L, this.nextTick);

View File

@@ -1,19 +1,18 @@
From 79ef32663e1f4603d8011e36d58552f05c7cc5cb Mon Sep 17 00:00:00 2001
From 612c06073940d88a5cc84b9783112453b9ed55f1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 2 Apr 2020 00:28:06 -0500
Subject: [PATCH] Optimize Chunk Ticks
---
.../minecraft/server/ChunkProviderServer.java | 70 ++++++-------------
.../minecraft/server/EnumCreatureType.java | 14 ++++
.../net/minecraft/server/PlayerChunkMap.java | 30 ++++----
3 files changed, 51 insertions(+), 63 deletions(-)
.../minecraft/server/ChunkProviderServer.java | 50 ++++---------------
.../minecraft/server/EnumCreatureType.java | 14 ++++++
2 files changed, 25 insertions(+), 39 deletions(-)
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 78a8a3cc6..0a09e8dd7 100644
index e2abda1bc..8ffb2e6b7 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -737,11 +737,12 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -767,11 +767,12 @@ public class ChunkProviderServer extends IChunkProvider {
int k = this.world.getGameRules().getInt(GameRules.RANDOM_TICK_SPEED);
BlockPosition blockposition = this.world.getSpawn();
// CraftBukkit start - Other mob type spawn tick rate
@@ -31,35 +30,8 @@ index 78a8a3cc6..0a09e8dd7 100644
// CraftBukkit end
this.world.getMethodProfiler().enter("naturalSpawnCount");
@@ -767,15 +768,17 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings
this.world.getMethodProfiler().exit();
- //Paper start - call player naturally spawn event
- int chunkRange = world.spigotConfig.mobSpawnRange;
- chunkRange = (chunkRange > world.spigotConfig.viewDistance) ? (byte) world.spigotConfig.viewDistance : chunkRange;
- chunkRange = Math.min(chunkRange, 8);
- for (EntityPlayer entityPlayer : this.world.players) {
- entityPlayer.playerNaturallySpawnedEvent = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(entityPlayer.getBukkitEntity(), (byte) chunkRange);
- entityPlayer.playerNaturallySpawnedEvent.callEvent();
- };
- // Paper end
+ // Purpur start
+ if (com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent.getHandlerList().getRegisteredListeners().length > 0) {
+ // Paper start - call player naturally spawn event
+ byte chunkRange = (byte) Math.min(Math.min(world.spigotConfig.mobSpawnRange, world.spigotConfig.viewDistance), 8);
+ for (EntityPlayer entityPlayer : this.world.players) {
+ entityPlayer.playerNaturallySpawnedEvent = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(entityPlayer.getBukkitEntity(), (byte) chunkRange);
+ entityPlayer.playerNaturallySpawnedEvent.callEvent();
+ }
+ // Paper end
+ }
+ // Purpur end
final int[] chunksTicked = {0}; this.playerChunkMap.forEachVisibleChunk((playerchunk) -> { // Paper - safe iterator incase chunk loads, also no wrapping
Optional<Chunk> optional = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left();
@@ -795,40 +798,11 @@ public class ChunkProviderServer extends IChunkProvider {
if (flag1 && (this.allowMonsters || this.allowAnimals) && this.world.getWorldBorder().isInBounds(chunk.getPos()) && !this.playerChunkMap.isOutsideOfRange(chunkcoordintpair, true)) { // Spigot
@@ -817,40 +818,11 @@ public class ChunkProviderServer extends IChunkProvider {
if (flag1 && (this.allowMonsters || this.allowAnimals) && this.world.getWorldBorder().isInBounds(chunk.getPos()) && !this.playerChunkMap.isOutsideOfRange(playerchunk, chunkcoordintpair, true)) { // Spigot // Paper - optimise isOutsideOfRange
this.world.getMethodProfiler().enter("spawner");
this.world.timings.mobSpawn.startTiming(); // Spigot
- EnumCreatureType[] aenumcreaturetype1 = aenumcreaturetype;
@@ -134,54 +106,6 @@ index 3ed7fa324..7f236585d 100644
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index aabb9220d..b0c95aebf 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -1386,28 +1386,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
}
boolean isOutsideOfRange(ChunkCoordIntPair chunkcoordintpair, boolean reducedRange) {
- int chunkRange = world.spigotConfig.mobSpawnRange;
- chunkRange = (chunkRange > world.spigotConfig.viewDistance) ? (byte) world.spigotConfig.viewDistance : chunkRange;
- chunkRange = (chunkRange > 8) ? 8 : chunkRange;
-
- final int finalChunkRange = chunkRange; // Paper for lambda below
- //double blockRange = (reducedRange) ? Math.pow(chunkRange << 4, 2) : 16384.0D; // Paper - use from event
- // Spigot end
+ // Purpur start
long i = chunkcoordintpair.pair();
-
- return !this.chunkDistanceManager.d(i) ? true : this.playerMap.a(i).noneMatch((entityplayer) -> {
- // Paper start -
- com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent event;
+ return !this.chunkDistanceManager.d(i) || this.playerMap.a(i).noneMatch((player) -> {
+ // Paper start
double blockRange = 16384.0D;
if (reducedRange) {
- event = entityplayer.playerNaturallySpawnedEvent;
- if (event == null || event.isCancelled()) return false;
- blockRange = (double) ((event.getSpawnRadius() << 4) * (event.getSpawnRadius() << 4));
+ int radius;
+ if (player.playerNaturallySpawnedEvent != null) {
+ if (player.playerNaturallySpawnedEvent.isCancelled()) {
+ return false;
+ }
+ radius = player.playerNaturallySpawnedEvent.getSpawnRadius();
+ } else {
+ radius = Math.min(Math.min(world.spigotConfig.mobSpawnRange, world.spigotConfig.viewDistance), 8) << 4;
+ }
+ blockRange = radius * radius;
}
- return (!entityplayer.isSpectator() && a(chunkcoordintpair, (Entity) entityplayer) < blockRange); // Spigot
+ return (!player.isSpectator() && a(chunkcoordintpair, player) < blockRange); // Spigot
// Paper end
});
+ // Purpur end
}
private boolean b(EntityPlayer entityplayer) {
--
2.24.0

View File

@@ -1,4 +1,4 @@
From 94e476eb077f2094206185c6d9b0007d713d4b99 Mon Sep 17 00:00:00 2001
From f65a4661cd8809abc4cf81ad6256849d15c4c51f Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 2 May 2020 20:55:44 -0500
Subject: [PATCH] Player invulnerabilities
@@ -12,7 +12,7 @@ Subject: [PATCH] Player invulnerabilities
5 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 2453f0149..b4652a2c2 100644
index 19cfdf6c8..621171584 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -131,6 +131,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -75,7 +75,7 @@ index 2453f0149..b4652a2c2 100644
public Scoreboard getScoreboard() {
return getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index d89a30659..5065a6aa9 100644
index f83a35c9f..4d6e7c249 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1522,6 +1522,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -87,10 +87,10 @@ index d89a30659..5065a6aa9 100644
this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus));
// Paper end
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 642160065..5e15eb46e 100644
index 5155537e7..652a954b5 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -821,6 +821,8 @@ public abstract class PlayerList {
@@ -823,6 +823,8 @@ public abstract class PlayerList {
}
// Paper end
@@ -122,7 +122,7 @@ index efdc176e6..81969d2dc 100644
playerSleepCondition = getString("gameplay-mechanics.player.sleep.condition", playerSleepCondition);
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 00f7fc3ec..0d410968c 100644
index c14493929..a3ffa34e0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2095,5 +2095,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@@ -1,4 +1,4 @@
From d66b7e2f84df8ce9968cd57fd67f08fd459860ab Mon Sep 17 00:00:00 2001
From 38d451e1f9556d05be4854849084f53771e2b061 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 6 Jul 2019 21:12:58 -0500
Subject: [PATCH] MC-4 Fix - Item position desync
@@ -10,10 +10,10 @@ Subject: [PATCH] MC-4 Fix - Item position desync
3 files changed, 10 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 1f7c8f7da..1589b46b7 100644
index 8d4bcd34c..ec0abe429 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -126,6 +126,12 @@ public class EntityTrackerEntry {
@@ -127,6 +127,12 @@ public class EntityTrackerEntry {
j = MathHelper.d(this.tracker.pitch * 256.0F / 360.0F);
Vec3D vec3d = this.tracker.getPositionVector().d(PacketPlayOutEntity.a(this.xLoc, this.yLoc, this.zLoc));
boolean flag1 = vec3d.g() >= 7.62939453125E-6D;

View File

@@ -1,4 +1,4 @@
From 768d10e0f31cc40dc3803b8631f953f4de958653 Mon Sep 17 00:00:00 2001
From 3755fa9ef7cb0798f63098b7cc08db5a4bac6b73 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Fri, 25 Oct 2019 02:11:30 -0700
Subject: [PATCH] Tuinity - Delay chunk unloads
@@ -15,12 +15,12 @@ without tickets get unloaded immediately.
Configurable under `delay-chunkunloads-by` in config.
---
.../java/net/minecraft/server/ChunkMap.java | 1 +
.../minecraft/server/ChunkMapDistance.java | 69 ++++++++++++++++++-
.../minecraft/server/ChunkMapDistance.java | 68 ++++++++++++++++++-
.../java/net/minecraft/server/Ticket.java | 6 +-
.../java/net/minecraft/server/TicketType.java | 1 +
.../java/net/pl3x/purpur/PurpurConfig.java | 9 +++
.../org/bukkit/craftbukkit/CraftWorld.java | 1 +
6 files changed, 83 insertions(+), 4 deletions(-)
6 files changed, 82 insertions(+), 4 deletions(-)
diff --git a/src/main/java/net/minecraft/server/ChunkMap.java b/src/main/java/net/minecraft/server/ChunkMap.java
index 55f9f4e6e..ac21fdb4c 100644
@@ -35,7 +35,7 @@ index 55f9f4e6e..ac21fdb4c 100644
this.a(ChunkCoordIntPair.a, i, j, flag);
}
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
index 279c7a85f..f26bc3417 100644
index 942efe62f..6f710ffa2 100644
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
@@ -30,7 +30,7 @@ public abstract class ChunkMapDistance {
@@ -44,13 +44,13 @@ index 279c7a85f..f26bc3417 100644
public final Long2ObjectOpenHashMap<ArraySetSorted<Ticket<?>>> tickets = new Long2ObjectOpenHashMap();
- private final ChunkMapDistance.a e = new ChunkMapDistance.a();
+ private final ChunkMapDistance.a e = new ChunkMapDistance.a(); final ChunkMapDistance.a getTicketTracker() { return this.e; } // Purpur - OBFHELPER
private final ChunkMapDistance.b f = new ChunkMapDistance.b(8);
public static final int MOB_SPAWN_RANGE = 8; //private final ChunkMapDistance.b f = new ChunkMapDistance.b(8); // Paper - no longer used
private final ChunkMapDistance.c g = new ChunkMapDistance.c(33);
private final java.util.Queue<PlayerChunk> pendingChunkUpdates = new java.util.LinkedList<>(); // PAIL pendingChunkUpdates // Paper - use a queue
@@ -41,6 +41,47 @@ public abstract class ChunkMapDistance {
private final Executor m;
@@ -42,6 +42,46 @@ public abstract class ChunkMapDistance {
private long currentTick;
PlayerChunkMap chunkMap; // Paper
+ // Purpur start
+ private long nextUnloadId;
+ private final Long2ObjectOpenHashMap<Ticket<Long>> delayedChunks = new Long2ObjectOpenHashMap<>();
@@ -91,11 +91,10 @@ index 279c7a85f..f26bc3417 100644
+ tickets.add(ticket); // re-add with new expire time and ticket level
+ }
+ // Purpur end
+
protected ChunkMapDistance(Executor executor, Executor executor1) {
executor1.getClass();
Mailbox<Runnable> mailbox = Mailbox.a("player ticket throttler", executor1::execute);
@@ -56,12 +97,30 @@ public abstract class ChunkMapDistance {
@@ -58,12 +98,30 @@ public abstract class ChunkMapDistance {
++this.currentTick;
ObjectIterator objectiterator = this.tickets.long2ObjectEntrySet().fastIterator();
@@ -127,7 +126,7 @@ index 279c7a85f..f26bc3417 100644
this.e.b(entry.getLongKey(), a((ArraySetSorted) entry.getValue()), false);
}
@@ -72,6 +131,7 @@ public abstract class ChunkMapDistance {
@@ -74,6 +132,7 @@ public abstract class ChunkMapDistance {
}
@@ -135,7 +134,7 @@ index 279c7a85f..f26bc3417 100644
private static int a(ArraySetSorted<Ticket<?>> arraysetsorted) {
return !arraysetsorted.isEmpty() ? ((Ticket) arraysetsorted.b()).b() : PlayerChunkMap.GOLDEN_TICKET + 1;
}
@@ -154,6 +214,11 @@ public abstract class ChunkMapDistance {
@@ -156,6 +215,11 @@ public abstract class ChunkMapDistance {
boolean removed = false; // CraftBukkit
if (arraysetsorted.remove(ticket)) {
removed = true; // CraftBukkit
@@ -173,12 +172,12 @@ index 7a8397815..8aae0b63e 100644
long j = this.a.b();
diff --git a/src/main/java/net/minecraft/server/TicketType.java b/src/main/java/net/minecraft/server/TicketType.java
index 6e0d0a54a..07f77dbb8 100644
index 8055f5998..93587068f 100644
--- a/src/main/java/net/minecraft/server/TicketType.java
+++ b/src/main/java/net/minecraft/server/TicketType.java
@@ -24,6 +24,7 @@ public class TicketType<T> {
@@ -23,6 +23,7 @@ public class TicketType<T> {
public static final TicketType<org.bukkit.plugin.Plugin> PLUGIN_TICKET = a("plugin_ticket", (plugin1, plugin2) -> plugin1.getClass().getName().compareTo(plugin2.getClass().getName())); // CraftBukkit
public static final TicketType<Long> FUTURE_AWAIT = a("future_await", Long::compareTo); // Paper
public static final TicketType<Integer> ANTIXRAY = a("antixray", Integer::compareTo); // Paper - Anti-Xray
public static final TicketType<Long> ASYNC_LOAD = a("async_load", Long::compareTo); // Paper
+ public static final TicketType<Long> DELAYED_UNLOAD = a("delayed_unload", Long::compareTo); // Purpur
@@ -210,7 +209,7 @@ index ab88636ca..becb13e0e 100644
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 97c2994a9..1f5e1a5a1 100644
index 6a50d7de3..513e84f76 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -487,6 +487,7 @@ public class CraftWorld implements World {

View File

@@ -1,4 +1,4 @@
From 0ab7bd16c955aa134f4e121b004a1162775fe7e2 Mon Sep 17 00:00:00 2001
From d7a4327da2fedcd01c616bb9789e4483dd67c3de Mon Sep 17 00:00:00 2001
From: Spottedleaf <spottedleaf@spottedleaf.dev>
Date: Fri, 3 Apr 2020 02:21:13 -0700
Subject: [PATCH] Tuinity - Always able to execute tasks on the main server
@@ -12,10 +12,10 @@ chunks.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e9f1fd78a..1ba86d12f 100644
index 902a5f98f..23f2da8a8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1090,7 +1090,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1091,7 +1091,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
protected boolean canExecute(TickTask ticktask) {

View File

@@ -1,4 +1,4 @@
From 991f2c3f27e2810b224f2b10441d79257ce6b0f5 Mon Sep 17 00:00:00 2001
From e4e02cb7f8becda34ad53bfcf03a4ce98613a84a Mon Sep 17 00:00:00 2001
From: tr7zw <tr7zw@live.de>
Date: Thu, 5 Mar 2020 23:08:01 +0100
Subject: [PATCH] YAPFA - Disable mojang profiler
@@ -43,7 +43,7 @@ index f0d72ea39..e38a68406 100644
throw CommandDebug.b.create();
} else {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1ba86d12f..2f58c3b44 100644
index 23f2da8a8..a1905366f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -80,7 +80,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -55,7 +55,7 @@ index 1ba86d12f..2f58c3b44 100644
private ServerConnection serverConnection;
public final WorldLoadListenerFactory worldLoadListenerFactory;
private final ServerPing serverPing = new ServerPing();
@@ -1444,6 +1444,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1445,6 +1445,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
String s1 = (String) Optional.ofNullable(optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
final DedicatedServer dedicatedserver = new DedicatedServer(optionset, dedicatedserversettings, DataConverterRegistry.a(), yggdrasilauthenticationservice, minecraftsessionservice, gameprofilerepository, usercache, WorldLoadListenerLogger::new, s1);
@@ -64,7 +64,7 @@ index 1ba86d12f..2f58c3b44 100644
/*
dedicatedserver.i((String) optionset.valueOf(optionspec7));
dedicatedserver.setPort((Integer) optionset.valueOf(optionspec10));
@@ -1869,6 +1871,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1870,6 +1872,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
public abstract boolean a(EnumGamemode enumgamemode, boolean flag, int i);
@@ -147,10 +147,10 @@ index 000000000..b32a5418f
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 9f61c266c..b7046e7e2 100644
index 717c2759f..2b34eb03b 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -144,6 +144,8 @@ public class Main {
@@ -145,6 +145,8 @@ public class Main {
.ofType(File.class)
.defaultsTo(new File("purpur.yml"))
.describedAs("Yml file");