diff --git a/Paper b/Paper index 78871d07d..26fb7cc35 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 78871d07dc22b56852dd028c85207068e94176f2 +Subproject commit 26fb7cc35aafecd5bf789c8ae4f9c26034527e52 diff --git a/patches/server/0003-Akarin-configuration.patch b/patches/server/0003-Akarin-configuration.patch index b9d19fe8e..acedb72e3 100644 --- a/patches/server/0003-Akarin-configuration.patch +++ b/patches/server/0003-Akarin-configuration.patch @@ -195,7 +195,7 @@ index 0000000000000000000000000000000000000000..2ac8f02a97429f04f3e5c9206ec228ed + +} diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 1ef7890da599d13e784861035e7891efcc4cd504..9d82885dcf5bb9309bbf136180551ed12930f59b 100644 +index e62ca0543f1819259ad8720ad792fed3ef134d6a..e936dee73aa8c4b2212d0f29fa2f9825b36345e0 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -194,6 +194,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -207,7 +207,7 @@ index 1ef7890da599d13e784861035e7891efcc4cd504..9d82885dcf5bb9309bbf136180551ed1 this.setSpawnAnimals(dedicatedserverproperties.spawnAnimals); this.setSpawnNPCs(dedicatedserverproperties.spawnNpcs); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index d554d4cf0f0a13b598c6b14d618ba463c9895f35..839ddb14efe621c0fdd4d43c03084a9d49683997 100644 +index 09b03afffa496b7090454682495ca35147c2f8a9..8d043de794d8ce13ed7efef88cfa93e3bc9b57f8 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -82,6 +82,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -228,7 +228,7 @@ index d554d4cf0f0a13b598c6b14d618ba463c9895f35..839ddb14efe621c0fdd4d43c03084a9d this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8cc0f66ce52d2c0cedef682b530a852fde38526a..ed684cc0d56d8f8e79f4553f6552921953e1b4b0 100644 +index dcc44be613119f0e2c9d7f7e76bdf641ad1ae7c0..5ce50f5fd831955b74e002c0aebcdb6e25b5af31 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -806,6 +806,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0004-Akarin-brand-changes.patch b/patches/server/0004-Akarin-brand-changes.patch index 95b0f35ec..fd9a79a9e 100644 --- a/patches/server/0004-Akarin-brand-changes.patch +++ b/patches/server/0004-Akarin-brand-changes.patch @@ -19,10 +19,10 @@ index cf00f35a5b7c2d2f6b6989e0855de8b882dcef50..a45e63a02759305e119a41eac55a7f40 throwable = throwable1; throw throwable1; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a9b5337512c5c7d71be68826cafb6c3c5528bd3e..c562c8ce7fd260760d1b855a9feffed904e2978b 100644 +index a386c1ab480806003938e330ca78a8283fab37f1..4680c5b27a82df529ad15218e23ade0c467c52f6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1511,7 +1511,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 100) { // Spigot this.snooper.a(); } -@@ -1176,6 +1178,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant world.spigotConfig.viewDistance) ? (byte) world.spigotConfig.viewDistance : chunkRange; -@@ -691,18 +695,18 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -701,18 +705,18 @@ public class ChunkProviderServer extends IChunkProvider { if (optional.isPresent()) { Chunk chunk = (Chunk) optional.get(); @@ -168,7 +168,7 @@ index f741a034e8eae0a250aa16b26e56f173c88a9769..04ffecd0615b85e080a828d32db7821c this.world.timings.mobSpawn.startTiming(); // Spigot EnumCreatureType[] aenumcreaturetype1 = aenumcreaturetype; int i1 = aenumcreaturetype.length; -@@ -762,7 +766,7 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -772,7 +776,7 @@ public class ChunkProviderServer extends IChunkProvider { } this.world.timings.mobSpawn.stopTiming(); // Spigot @@ -177,7 +177,7 @@ index f741a034e8eae0a250aa16b26e56f173c88a9769..04ffecd0615b85e080a828d32db7821c } this.world.timings.chunkTicks.startTiming(); // Spigot // Paper -@@ -772,15 +776,15 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -782,15 +786,15 @@ public class ChunkProviderServer extends IChunkProvider { } } }); @@ -196,7 +196,7 @@ index f741a034e8eae0a250aa16b26e56f173c88a9769..04ffecd0615b85e080a828d32db7821c } this.playerChunkMap.g(); -@@ -906,7 +910,7 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -916,7 +920,7 @@ public class ChunkProviderServer extends IChunkProvider { @Override protected void executeTask(Runnable runnable) { @@ -290,10 +290,10 @@ index ee42e1dfa493c3d7f5af8cc7b8e17e80fcb32b71..68dc7cdfbca341234245d0b8c1643f56 ++k; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c38667ba09c26 100644 +index 96a47dd1c2d3c89b4061fe96210e768c12b73ca0..98eeb2a4a09e7653a8d050df5b1c8a1d457b1e94 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -395,7 +395,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -429,7 +429,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke // CraftBukkit end public void entityBaseTick() { @@ -302,7 +302,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 if (this.isPassenger() && this.getVehicle().dead) { this.stopRiding(); } -@@ -448,7 +448,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -482,7 +482,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } this.justCreated = false; @@ -311,7 +311,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 } // Paper start -@@ -563,7 +563,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -597,7 +597,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } } @@ -320,7 +320,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 if (this.y.g() > 1.0E-7D) { vec3d = vec3d.h(this.y); this.y = Vec3D.a; -@@ -572,7 +572,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -606,7 +606,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke // Paper start - ignore movement changes while inactive. if (isTemporarilyActive && !(this instanceof EntityItem) && vec3d == getMot() && enummovetype == EnumMoveType.SELF) { setMot(Vec3D.a); @@ -329,7 +329,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 return; } // Paper end -@@ -585,8 +585,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -619,8 +619,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.recalcPosition(); } @@ -340,7 +340,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 this.positionChanged = !MathHelper.b(vec3d.x, vec3d1.x) || !MathHelper.b(vec3d.z, vec3d1.z); this.v = vec3d.y != vec3d1.y; this.onGround = this.v && vec3d.y < 0.0D; -@@ -708,7 +708,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -742,7 +742,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.fireTicks = -this.getMaxFireTicks(); } @@ -349,7 +349,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 } } -@@ -2209,7 +2209,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2243,7 +2243,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (this.af) { if ((true || this.world.getMinecraftServer().getAllowNether()) && !this.isPassenger() && this.ag++ >= i) { // CraftBukkit @@ -358,7 +358,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 this.ag = i; this.portalCooldown = this.ba(); // CraftBukkit start -@@ -2219,7 +2219,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2253,7 +2253,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.a(this.world.worldProvider.getDimensionManager().getType() == DimensionManager.NETHER ? DimensionManager.OVERWORLD : DimensionManager.NETHER); } // CraftBukkit end @@ -367,7 +367,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 } this.af = false; -@@ -2597,7 +2597,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2631,7 +2631,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public Entity teleportTo(DimensionManager dimensionmanager, BlockPosition location) { // CraftBukkit end if (!this.world.isClientSide && !this.dead) { @@ -376,7 +376,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 MinecraftServer minecraftserver = this.getMinecraftServer(); DimensionManager dimensionmanager1 = this.dimension; WorldServer worldserver = minecraftserver.getWorldServer(dimensionmanager1); -@@ -2610,7 +2610,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2644,7 +2644,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke // this.dimension = dimensionmanager; // this.decouple(); // CraftBukkit end @@ -385,7 +385,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 Vec3D vec3d = this.getMot(); float f = 0.0F; BlockPosition blockposition = location; // CraftBukkit -@@ -2689,7 +2689,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2723,7 +2723,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.decouple(); // CraftBukkit end @@ -394,7 +394,7 @@ index 9cb4e5a1e6eca84955948f474f92467c0681968c..b290f64fa13c2ff4c8555370c57c3866 Entity entity = this.getEntityType().a((World) worldserver1); if (entity != null) { -@@ -2708,10 +2708,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2742,10 +2742,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } this.dead = true; @@ -493,7 +493,7 @@ index 1991cee43d429574f2c0889f807e7cd090f7d7dd..bb20398abc65d3f7e54867bdf930480a } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index ad474500e2f6fd6ad6db7bf2436b74c2d9d6136a..284826897995c278c0b76a4114fad4e60309a1f9 100644 +index dfb9421a15ba1ca7b86146cb795a3ac5e9b8e15e..68504f798efe6e4e5ff2a0a7748b67b9d32601d4 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -242,7 +242,7 @@ public abstract class EntityLiving extends Entity { @@ -592,10 +592,10 @@ index ad474500e2f6fd6ad6db7bf2436b74c2d9d6136a..284826897995c278c0b76a4114fad4e6 private void n() { diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index cd8df622f02051ad997664c670447b225361bbc3..4f0ae1bc453e44b65dba50273913cf0c91c13017 100644 +index 202068314eca435abecc25b2870350c530e0fac5..b4c3dffaff5ea64d9189304c5e84c515bf40ed65 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -825,7 +825,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -826,7 +826,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { double d3 = 8.0D; float f2 = f1; @@ -604,7 +604,7 @@ index cd8df622f02051ad997664c670447b225361bbc3..4f0ae1bc453e44b65dba50273913cf0c if (worldserver1 == null) { } else // CraftBukkit - empty to fall through to null to event if (dimensionmanager1 == DimensionManager.OVERWORLD && dimensionmanager == DimensionManager.NETHER) { this.cr = this.getPositionVector(); -@@ -866,8 +866,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -867,8 +867,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { // CraftBukkit end // this.setPositionRotation(d0, d1, d2, f1, f); // CraftBukkit - PlayerTeleportEvent handles position changes @@ -615,7 +615,7 @@ index cd8df622f02051ad997664c670447b225361bbc3..4f0ae1bc453e44b65dba50273913cf0c double d4 = Math.min(-2.9999872E7D, worldserver1.getWorldBorder().c() + 16.0D); double d5 = Math.min(-2.9999872E7D, worldserver1.getWorldBorder().d() + 16.0D); double d6 = Math.min(2.9999872E7D, worldserver1.getWorldBorder().e() - 16.0D); -@@ -938,7 +938,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -939,7 +939,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { // CraftBukkit end } @@ -663,10 +663,10 @@ index a353f3d5fa5a5f54335f73584589de3f5cb20d3e..5f976a17c7aa36286ee1132597e480f5 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 63865f767b58e71180f1d5f01dddba5e8e4a346c..82aa50bf85b18599cf72ca1fbe59eceeebc1dc61 100644 +index df35fb8065bd0a367e2dbad75e0adca611cad6f1..fba422d39d0e4dc8a1f2fe309a4aea506d68ca1e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -933,18 +933,18 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 0 && this.ticks % autosavePeriod == 0) { // CraftBukkit // Paper - move down //MinecraftServer.LOGGER.debug("Autosave started"); // Paper serverAutoSave = (autosavePeriod > 0 && this.ticks % autosavePeriod == 0); // Paper @@ -709,7 +709,7 @@ index 63865f767b58e71180f1d5f01dddba5e8e4a346c..82aa50bf85b18599cf72ca1fbe59ecee if (autosavePeriod > 0 && this.ticks % autosavePeriod == 0) { // Paper this.playerList.savePlayers(); }// Paper -@@ -1164,11 +1164,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 100) { // Spigot -@@ -1180,8 +1180,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 0; // Paper TileEntityHopper.skipHopperEvents = worldserver.paperConfig.disableHopperMoveEvents || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper if (true || worldserver.worldProvider.getDimensionManager() == DimensionManager.OVERWORLD || this.getAllowNether()) { // CraftBukkit @@ -771,7 +778,7 @@ index 63865f767b58e71180f1d5f01dddba5e8e4a346c..82aa50bf85b18599cf72ca1fbe59ecee /* Drop global time updates if (this.ticks % 20 == 0) { this.methodProfiler.enter("timeSync"); -@@ -1268,7 +1272,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant c() { diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index c38d31fafee81904ecfa43b90f75a6c8f5fd2ede..e230087620c23f87d16cd021875ad9edc3e0982e 100644 +index 12639dfb94599233e24a0a8b77bc88de81b65e9b..f8ad08cccf25ef26759231c3d26b71d33d010eb8 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -537,20 +537,20 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -1000,7 +1007,7 @@ index 3f1aa5ced697490b5481ba992cf5af5dc98b8166..a7f2dee2c424b5da66a7c86319f6fa3a this.h.clear(); this.g.clear(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 839ddb14efe621c0fdd4d43c03084a9d49683997..11629c4ce8b7e3924ae7cd44a3c03e1898142de9 100644 +index 8d043de794d8ce13ed7efef88cfa93e3bc9b57f8..75605d44bc4c051a7afa327a8749a0a67790b165 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -378,9 +378,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -1048,9 +1055,9 @@ index 839ddb14efe621c0fdd4d43c03084a9d49683997..11629c4ce8b7e3924ae7cd44a3c03e18 - gameprofilerfiller.exit(); + // gameprofilerfiller.exit(); // Akarin - remove caller } catch (Throwable throwable) { + if (throwable instanceof ThreadDeath) throw throwable; // Paper // Paper start - Prevent tile entity and entity crashes - String msg = "TileEntity threw exception at " + tileentity.world.getWorld().getName() + ":" + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ(); -@@ -823,7 +827,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -824,7 +828,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { timings.tileEntityTick.stopTiming(); // Spigot timings.tileEntityPending.startTiming(); // Spigot this.tickingTileEntities = false; @@ -1059,7 +1066,7 @@ index 839ddb14efe621c0fdd4d43c03084a9d49683997..11629c4ce8b7e3924ae7cd44a3c03e18 if (!this.tileEntityListPending.isEmpty()) { for (int i = 0; i < this.tileEntityListPending.size(); ++i) { TileEntity tileentity1 = (TileEntity) this.tileEntityListPending.get(i); -@@ -856,7 +860,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -857,7 +861,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { timings.tileEntityPending.stopTiming(); // Spigot co.aikar.timings.TimingHistory.tileEntityTicks += this.tileEntityListTick.size(); // Paper @@ -1068,7 +1075,7 @@ index 839ddb14efe621c0fdd4d43c03084a9d49683997..11629c4ce8b7e3924ae7cd44a3c03e18 spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1175,7 +1179,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1203,7 +1207,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @Override public List getEntities(@Nullable Entity entity, AxisAlignedBB axisalignedbb, @Nullable Predicate predicate) { @@ -1077,7 +1084,7 @@ index 839ddb14efe621c0fdd4d43c03084a9d49683997..11629c4ce8b7e3924ae7cd44a3c03e18 List list = Lists.newArrayList(); int i = MathHelper.floor((axisalignedbb.minX - 2.0D) / 16.0D); int j = MathHelper.floor((axisalignedbb.maxX + 2.0D) / 16.0D); -@@ -1196,7 +1200,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1224,7 +1228,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } public List a(@Nullable EntityTypes entitytypes, AxisAlignedBB axisalignedbb, Predicate predicate) { @@ -1086,7 +1093,7 @@ index 839ddb14efe621c0fdd4d43c03084a9d49683997..11629c4ce8b7e3924ae7cd44a3c03e18 int i = MathHelper.floor((axisalignedbb.minX - 2.0D) / 16.0D); int j = MathHelper.f((axisalignedbb.maxX + 2.0D) / 16.0D); int k = MathHelper.floor((axisalignedbb.minZ - 2.0D) / 16.0D); -@@ -1218,7 +1222,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1246,7 +1250,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @Override public List a(Class oclass, AxisAlignedBB axisalignedbb, @Nullable Predicate predicate) { @@ -1095,7 +1102,7 @@ index 839ddb14efe621c0fdd4d43c03084a9d49683997..11629c4ce8b7e3924ae7cd44a3c03e18 int i = MathHelper.floor((axisalignedbb.minX - 2.0D) / 16.0D); int j = MathHelper.f((axisalignedbb.maxX + 2.0D) / 16.0D); int k = MathHelper.floor((axisalignedbb.minZ - 2.0D) / 16.0D); -@@ -1241,7 +1245,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1269,7 +1273,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @Override public List b(Class oclass, AxisAlignedBB axisalignedbb, @Nullable Predicate predicate) { diff --git a/patches/server/0013-Optimizations-for-network.patch b/patches/server/0013-Optimizations-for-network.patch index d79f1d9f0..ea2643b02 100644 --- a/patches/server/0013-Optimizations-for-network.patch +++ b/patches/server/0013-Optimizations-for-network.patch @@ -429,7 +429,7 @@ index 6dfbbc67dd9cc60355dcf5ef751cd1a5b259be6b..b23612817b653b3f9a74b9c3bff70b8c @Override diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 6d6fbf2f50159846267199f74575bedeb54c1473..fa23e838ee0243ae8dcbb3f2f0492179ee47e0c9 100644 +index 0e1703c9dac8e122074ac6369a1a88240bbc3e70..9ca3fdc9cf5df3651d9b9267806c9f4b566515cb 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -159,6 +159,8 @@ public abstract class PlayerList { diff --git a/patches/server/0014-Swaps-the-predicate-order-of-collision.patch b/patches/server/0014-Swaps-the-predicate-order-of-collision.patch index c51b35d96..8b070894b 100644 --- a/patches/server/0014-Swaps-the-predicate-order-of-collision.patch +++ b/patches/server/0014-Swaps-the-predicate-order-of-collision.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Swaps the predicate order of collision diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b290f64fa13c2ff4c8555370c57c38667ba09c26..fb21da032a222d91f7840be1426e809fbd633345 100644 +index 98eeb2a4a09e7653a8d050df5b1c8a1d457b1e94..46ea798509579103726772bdd014cd59b108482a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1403,8 +1403,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1437,8 +1437,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public void pickup(EntityHuman entityhuman) {} public void collide(Entity entity) { diff --git a/patches/server/0018-Optimize-door-interact-with-pathfinding.patch b/patches/server/0016-Optimize-door-interact-with-pathfinding.patch similarity index 100% rename from patches/server/0018-Optimize-door-interact-with-pathfinding.patch rename to patches/server/0016-Optimize-door-interact-with-pathfinding.patch diff --git a/patches/server/0016-Tuinity-Optimise-ArraySetSorted-removeIf.patch b/patches/server/0016-Tuinity-Optimise-ArraySetSorted-removeIf.patch deleted file mode 100644 index 3dcc2ff4d..000000000 --- a/patches/server/0016-Tuinity-Optimise-ArraySetSorted-removeIf.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sotr -Date: Wed, 15 Apr 2020 02:44:07 +0700 -Subject: [PATCH] Tuinity Optimise ArraySetSorted#removeIf - -Remove iterator allocation and ensure the call is always O(n) - -diff --git a/src/main/java/net/minecraft/server/ArraySetSorted.java b/src/main/java/net/minecraft/server/ArraySetSorted.java -index 85f799a713db0c822d46b689010f9f6bd43f5280..f23ddb9e0ca41eef0dacc0e6e0072b78dfdd9e44 100644 ---- a/src/main/java/net/minecraft/server/ArraySetSorted.java -+++ b/src/main/java/net/minecraft/server/ArraySetSorted.java -@@ -11,7 +11,9 @@ public class ArraySetSorted extends AbstractSet { - - private final Comparator a; - private T[] b; -+ private final T[] getBackingArray() { return this.b; } // Akarin - OBFHELPER - private int c; -+ private final int getSize() { return this.c; } private final void setSize(int value) { this.c = value; } // Akarin - OBFHELPER - - private ArraySetSorted(int i, Comparator comparator) { - this.a = comparator; -@@ -22,6 +24,42 @@ public class ArraySetSorted extends AbstractSet { - } - } - -+ // Akarin start - backport Tuinity - optimise removeIf -+ @Override -+ public boolean removeIf(java.util.function.Predicate filter) { -+ // prev. impl used an iterator, which could be n^2 -+ int i = 0, len = this.getSize(); -+ T[] backingArray = this.getBackingArray(); -+ -+ for (;;) { -+ if (i >= len) { -+ return false; -+ } -+ if (!filter.test(backingArray[i])) { -+ ++i; -+ continue; -+ } -+ break; -+ } -+ -+ // we only want to write back to backingArray if we really need to -+ -+ int lastIndex = i; // this is where new elements are shifted to -+ -+ for (; i < len; ++i) { -+ T curr = backingArray[i]; -+ if (!filter.test(curr)) { // if test throws we're screwed -+ backingArray[lastIndex++] = curr; -+ } -+ } -+ -+ // cleanup end -+ Arrays.fill(backingArray, lastIndex, len, null); -+ this.setSize(lastIndex); -+ return true; -+ } -+ // Akarin end - backport Tuinity - optimise removeIf -+ - public static > ArraySetSorted a(int i) { - return new ArraySetSorted<>(i, (Comparator)Comparator.naturalOrder()); // Paper - decompile fix - } diff --git a/patches/server/0017-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0017-Don-t-run-entity-collision-code-if-not-needed.patch deleted file mode 100644 index a028b4aec..000000000 --- a/patches/server/0017-Don-t-run-entity-collision-code-if-not-needed.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sotr -Date: Wed, 15 Apr 2020 02:49:56 +0700 -Subject: [PATCH] Don't run entity collision code if not needed - -Will not run if max entity craming is disabled and -the max collisions per entity is less than or equal to 0 - -This commit was basically referenced on Tuinity#7131da4. - -diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 284826897995c278c0b76a4114fad4e60309a1f9..c1c7e7dca3599353793bbfa4635f93554d9c737c 100644 ---- a/src/main/java/net/minecraft/server/EntityLiving.java -+++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2663,10 +2663,16 @@ public abstract class EntityLiving extends Entity { - protected void doTick() {} - - protected void collideNearby() { -+ // Akarin start - don't run getEntities if we're not going to use its result -+ if (world.paperConfig.maxCollisionsPerEntity <= 0) return; -+ -+ int i = this.world.getGameRules().getInt(GameRules.MAX_ENTITY_CRAMMING); -+ if (i <= 0) return; -+ // Akarin end - List list = this.world.getEntities(this, this.getBoundingBox(), IEntitySelector.a(this)); - - if (!list.isEmpty()) { -- int i = this.world.getGameRules().getInt(GameRules.MAX_ENTITY_CRAMMING); -+ // int i = this.world.getGameRules().getInt(GameRules.MAX_ENTITY_CRAMMING); // Akarin - moved up - int j; - - if (i > 0 && list.size() > i - 1 && this.random.nextInt(4) == 0) { diff --git a/patches/server/0019-Remove-stream-for-ender-teleport.patch b/patches/server/0017-Remove-stream-for-ender-teleport.patch similarity index 86% rename from patches/server/0019-Remove-stream-for-ender-teleport.patch rename to patches/server/0017-Remove-stream-for-ender-teleport.patch index d6534fa42..b62a167e3 100644 --- a/patches/server/0019-Remove-stream-for-ender-teleport.patch +++ b/patches/server/0017-Remove-stream-for-ender-teleport.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove stream for ender teleport diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index fb21da032a222d91f7840be1426e809fbd633345..6b43c41a85061058b49207d2762c2aeabc20a2c4 100644 +index 46ea798509579103726772bdd014cd59b108482a..886c7af2d70ba7224f3dcfab000223104a9a86d8 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2842,7 +2842,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2876,7 +2876,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke WorldServer worldserver = (WorldServer) this.world; this.setPositionRotation(d0, d1, d2, this.yaw, this.pitch); @@ -17,7 +17,7 @@ index fb21da032a222d91f7840be1426e809fbd633345..6b43c41a85061058b49207d2762c2aea worldserver.chunkCheck(entity); entity.aF = true; entity.a(Entity::teleportAndSync); -@@ -3091,6 +3091,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3125,6 +3125,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public Stream cg() { return Stream.concat(Stream.of(this), this.passengers.stream().flatMap(Entity::cg)); } diff --git a/patches/server/0020-Cache-hashcode-for-BlockPosition.patch b/patches/server/0018-Cache-hashcode-for-BlockPosition.patch similarity index 100% rename from patches/server/0020-Cache-hashcode-for-BlockPosition.patch rename to patches/server/0018-Cache-hashcode-for-BlockPosition.patch diff --git a/patches/server/0021-Remove-stream-and-simplify-operation-in-pathfinder.patch b/patches/server/0019-Remove-stream-and-simplify-operation-in-pathfinder.patch similarity index 100% rename from patches/server/0021-Remove-stream-and-simplify-operation-in-pathfinder.patch rename to patches/server/0019-Remove-stream-and-simplify-operation-in-pathfinder.patch diff --git a/patches/server/0022-Remove-a-few-more-streams.patch b/patches/server/0020-Remove-a-few-more-streams.patch similarity index 100% rename from patches/server/0022-Remove-a-few-more-streams.patch rename to patches/server/0020-Remove-a-few-more-streams.patch