From 4a95a5522584edd5a7f68bb054000c99840805b2 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Thu, 12 Nov 2020 17:02:48 -0600 Subject: [PATCH] Updated Upstream (Paper & Tuinity) Upstream has released updates that appears to apply and compile correctly Paper Changes: 4ba3c054 Zero pad chunks before saving them to the disk Tuinity Changes: 48ccd32 Do not retain playerchunkmap instance in light thread factoryy --- Paper | 2 +- current-paper | 2 +- .../server/0001-Tuinity-Server-Changes.patch | 259 ++++++++++-------- 3 files changed, 140 insertions(+), 123 deletions(-) diff --git a/Paper b/Paper index 73fc96669..4ba3c0542 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 73fc96669d7410372f15c68901c01bf923ae9cf4 +Subproject commit 4ba3c0542f6f854e1d5186dd94bb1ecb2e30bc76 diff --git a/current-paper b/current-paper index 34ba60362..d228cc4aa 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.16.4-- +1.16.4--d8def5e98bad8152ed885df589fd29e2fea5aee6 diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 90aeb98e5..0e33de87c 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -337,8 +337,13 @@ up on this optimisation before he came along. Locally this patch drops the entity tracker tick by a full 1.5x. +Do not retain playerchunkmap instance in light thread factory + +The executor returned is finalizable and of course +that causes issues. + diff --git a/pom.xml b/pom.xml -index 80f1652913..78c2a8bbcc 100644 +index 80f165291..78c2a8bbc 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -438,7 +443,7 @@ index 80f1652913..78c2a8bbcc 100644 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java -index 884b59d478..68ab5ccb2f 100644 +index 884b59d47..68ab5ccb2 100644 --- a/src/main/java/co/aikar/timings/MinecraftTimings.java +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -43,6 +43,9 @@ public final class MinecraftTimings { @@ -452,7 +457,7 @@ index 884b59d478..68ab5ccb2f 100644 private MinecraftTimings() {} diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java -index e33e889c29..5dfa065883 100644 +index e33e889c2..5dfa06588 100644 --- a/src/main/java/co/aikar/timings/TimingsExport.java +++ b/src/main/java/co/aikar/timings/TimingsExport.java @@ -229,7 +229,8 @@ public class TimingsExport extends Thread { @@ -466,7 +471,7 @@ index e33e889c29..5dfa065883 100644 new TimingsExport(listeners, parent, history).start(); diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java -index 49a38c6608..255bbd6e48 100644 +index 49a38c660..255bbd6e4 100644 --- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java +++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java @@ -24,8 +24,8 @@ public class PaperVersionFetcher implements VersionFetcher { @@ -497,7 +502,7 @@ index 49a38c6608..255bbd6e48 100644 switch (distance) { case -1: diff --git a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java -index e7624948ea..77df688880 100644 +index e7624948e..77df68888 100644 --- a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java +++ b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java @@ -186,6 +186,7 @@ public final class PaperTickList extends TickListServer { // extend to avo @@ -581,7 +586,7 @@ index e7624948ea..77df688880 100644 int ret = 0; diff --git a/src/main/java/com/mojang/brigadier/CommandDispatcher.java b/src/main/java/com/mojang/brigadier/CommandDispatcher.java -index 103576715e..e8fdbe7b8d 100644 +index 103576715..e8fdbe7b8 100644 --- a/src/main/java/com/mojang/brigadier/CommandDispatcher.java +++ b/src/main/java/com/mojang/brigadier/CommandDispatcher.java @@ -590,10 +590,11 @@ public class CommandDispatcher { @@ -598,7 +603,7 @@ index 103576715e..e8fdbe7b8d 100644 } futures[i++] = future; diff --git a/src/main/java/com/mojang/brigadier/arguments/BoolArgumentType.java b/src/main/java/com/mojang/brigadier/arguments/BoolArgumentType.java -index cb993ca102..849686f7b2 100644 +index cb993ca10..849686f7b 100644 --- a/src/main/java/com/mojang/brigadier/arguments/BoolArgumentType.java +++ b/src/main/java/com/mojang/brigadier/arguments/BoolArgumentType.java @@ -34,10 +34,10 @@ public class BoolArgumentType implements ArgumentType { @@ -615,7 +620,7 @@ index cb993ca102..849686f7b2 100644 } return builder.buildFuture(); diff --git a/src/main/java/com/mojang/brigadier/suggestion/SuggestionsBuilder.java b/src/main/java/com/mojang/brigadier/suggestion/SuggestionsBuilder.java -index bc0024adb8..0343f6663c 100644 +index bc0024adb..0343f6663 100644 --- a/src/main/java/com/mojang/brigadier/suggestion/SuggestionsBuilder.java +++ b/src/main/java/com/mojang/brigadier/suggestion/SuggestionsBuilder.java @@ -14,9 +14,16 @@ public class SuggestionsBuilder { @@ -636,7 +641,7 @@ index bc0024adb8..0343f6663c 100644 this.start = start; this.remaining = input.substring(start); diff --git a/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java b/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java -index 7720578796..e5db29d4ca 100644 +index 772057879..e5db29d4c 100644 --- a/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java @@ -20,11 +20,11 @@ import java.util.concurrent.CompletableFuture; @@ -664,7 +669,7 @@ index 7720578796..e5db29d4ca 100644 return Suggestions.empty(); diff --git a/src/main/java/com/tuinity/tuinity/chunk/ChunkEntitiesByClass.java b/src/main/java/com/tuinity/tuinity/chunk/ChunkEntitiesByClass.java new file mode 100644 -index 0000000000..37428f4b9a +index 000000000..37428f4b9 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/chunk/ChunkEntitiesByClass.java @@ -0,0 +1,186 @@ @@ -856,7 +861,7 @@ index 0000000000..37428f4b9a +} diff --git a/src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java b/src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java new file mode 100644 -index 0000000000..4cb10fe69c +index 000000000..4cb10fe69 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java @@ -0,0 +1,408 @@ @@ -1271,7 +1276,7 @@ index 0000000000..4cb10fe69c \ No newline at end of file diff --git a/src/main/java/com/tuinity/tuinity/config/TuinityConfig.java b/src/main/java/com/tuinity/tuinity/config/TuinityConfig.java new file mode 100644 -index 0000000000..048139d134 +index 000000000..048139d13 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/config/TuinityConfig.java @@ -0,0 +1,375 @@ @@ -1653,7 +1658,7 @@ index 0000000000..048139d134 \ No newline at end of file diff --git a/src/main/java/com/tuinity/tuinity/util/CachedLists.java b/src/main/java/com/tuinity/tuinity/util/CachedLists.java new file mode 100644 -index 0000000000..104a5c7bdc +index 000000000..104a5c7bd --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/util/CachedLists.java @@ -0,0 +1,73 @@ @@ -1732,7 +1737,7 @@ index 0000000000..104a5c7bdc +} diff --git a/src/main/java/com/tuinity/tuinity/util/IntervalledCounter.java b/src/main/java/com/tuinity/tuinity/util/IntervalledCounter.java new file mode 100644 -index 0000000000..d2c7d2c792 +index 000000000..d2c7d2c79 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/util/IntervalledCounter.java @@ -0,0 +1,100 @@ @@ -1838,7 +1843,7 @@ index 0000000000..d2c7d2c792 +} diff --git a/src/main/java/com/tuinity/tuinity/util/TickThread.java b/src/main/java/com/tuinity/tuinity/util/TickThread.java new file mode 100644 -index 0000000000..08ed243259 +index 000000000..08ed24325 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/util/TickThread.java @@ -0,0 +1,41 @@ @@ -1886,7 +1891,7 @@ index 0000000000..08ed243259 \ No newline at end of file diff --git a/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java b/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java new file mode 100644 -index 0000000000..6d2851ffa3 +index 000000000..6d2851ffa --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java @@ -0,0 +1,288 @@ @@ -2180,7 +2185,7 @@ index 0000000000..6d2851ffa3 +} diff --git a/src/main/java/com/tuinity/tuinity/voxel/AABBVoxelShape.java b/src/main/java/com/tuinity/tuinity/voxel/AABBVoxelShape.java new file mode 100644 -index 0000000000..b321ad5163 +index 000000000..b321ad516 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/voxel/AABBVoxelShape.java @@ -0,0 +1,162 @@ @@ -2347,7 +2352,7 @@ index 0000000000..b321ad5163 + } +} diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java -index ed9b2f9adf..6aa9f07336 100644 +index ed9b2f9ad..6aa9f0733 100644 --- a/src/main/java/net/minecraft/server/AxisAlignedBB.java +++ b/src/main/java/net/minecraft/server/AxisAlignedBB.java @@ -13,6 +13,149 @@ public class AxisAlignedBB { @@ -2525,7 +2530,7 @@ index ed9b2f9adf..6aa9f07336 100644 return d0 >= this.minX && d0 < this.maxX && d1 >= this.minY && d1 < this.maxY && d2 >= this.minZ && d2 < this.maxZ; } diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java -index 6b655b744d..e811295b4d 100644 +index 6b655b744..e811295b4 100644 --- a/src/main/java/net/minecraft/server/BaseBlockPosition.java +++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java @@ -16,9 +16,9 @@ public class BaseBlockPosition implements Comparable { @@ -2561,7 +2566,7 @@ index 6b655b744d..e811295b4d 100644 } diff --git a/src/main/java/net/minecraft/server/Behavior.java b/src/main/java/net/minecraft/server/Behavior.java -index 65af976527..0b9d469a92 100644 +index 65af97652..0b9d469a9 100644 --- a/src/main/java/net/minecraft/server/Behavior.java +++ b/src/main/java/net/minecraft/server/Behavior.java @@ -7,7 +7,7 @@ import java.util.Map.Entry; @@ -2574,7 +2579,7 @@ index 65af976527..0b9d469a92 100644 private final int d; private final int e; diff --git a/src/main/java/net/minecraft/server/BehaviorFindPosition.java b/src/main/java/net/minecraft/server/BehaviorFindPosition.java -index 63a761ebef..8d445e9c08 100644 +index 63a761ebe..8d445e9c0 100644 --- a/src/main/java/net/minecraft/server/BehaviorFindPosition.java +++ b/src/main/java/net/minecraft/server/BehaviorFindPosition.java @@ -55,6 +55,227 @@ public class BehaviorFindPosition extends Behavior { @@ -2824,7 +2829,7 @@ index 63a761ebef..8d445e9c08 100644 worldserver.broadcastEntityEffect(entitycreature, obyte); }); diff --git a/src/main/java/net/minecraft/server/BehaviorGate.java b/src/main/java/net/minecraft/server/BehaviorGate.java -index 46e9105812..fb967bc03f 100644 +index 46e910581..fb967bc03 100644 --- a/src/main/java/net/minecraft/server/BehaviorGate.java +++ b/src/main/java/net/minecraft/server/BehaviorGate.java @@ -12,7 +12,7 @@ public class BehaviorGate extends Behavior { @@ -2939,7 +2944,7 @@ index 46e9105812..fb967bc03f 100644 }; diff --git a/src/main/java/net/minecraft/server/BehaviorLookInteract.java b/src/main/java/net/minecraft/server/BehaviorLookInteract.java -index a33303c318..ce57e6a4ac 100644 +index a33303c31..ce57e6a4a 100644 --- a/src/main/java/net/minecraft/server/BehaviorLookInteract.java +++ b/src/main/java/net/minecraft/server/BehaviorLookInteract.java @@ -7,7 +7,7 @@ import java.util.function.Predicate; @@ -3011,7 +3016,7 @@ index a33303c318..ce57e6a4ac 100644 return this.b.equals(entityliving.getEntityType()) && this.d.test(entityliving); } diff --git a/src/main/java/net/minecraft/server/BlockBase.java b/src/main/java/net/minecraft/server/BlockBase.java -index 1f334d6328..2760b377d1 100644 +index 1f334d632..2760b377d 100644 --- a/src/main/java/net/minecraft/server/BlockBase.java +++ b/src/main/java/net/minecraft/server/BlockBase.java @@ -295,21 +295,23 @@ public abstract class BlockBase { @@ -3088,7 +3093,7 @@ index 1f334d6328..2760b377d1 100644 public final boolean e() { // Paper diff --git a/src/main/java/net/minecraft/server/BlockChest.java b/src/main/java/net/minecraft/server/BlockChest.java -index 12a0230448..9e5e6de52e 100644 +index 12a023044..9e5e6de52 100644 --- a/src/main/java/net/minecraft/server/BlockChest.java +++ b/src/main/java/net/minecraft/server/BlockChest.java @@ -195,7 +195,7 @@ public class BlockChest extends BlockChestAbstract implements I @@ -3101,7 +3106,7 @@ index 12a0230448..9e5e6de52e 100644 if (tileentity instanceof IInventory) { InventoryUtils.dropInventory(world, blockposition, (IInventory) tileentity); diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java -index 2d887af902..2291135eae 100644 +index 2d887af90..2291135ea 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java @@ -449,10 +449,10 @@ public class BlockPosition extends BaseBlockPosition { @@ -3198,7 +3203,7 @@ index 2d887af902..2291135eae 100644 @Override public BlockPosition immutableCopy() { diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index dcbae1c451..f3702ed75e 100644 +index dcbae1c45..f3702ed75 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -91,6 +91,151 @@ public class Chunk implements IChunkAccess { @@ -3425,7 +3430,7 @@ index dcbae1c451..f3702ed75e 100644 int j = MathHelper.floor((axisalignedbb.maxY + 2.0D) / 16.0D); diff --git a/src/main/java/net/minecraft/server/ChunkCache.java b/src/main/java/net/minecraft/server/ChunkCache.java -index 8eecdcde51..53c977513d 100644 +index 8eecdcde5..53c977513 100644 --- a/src/main/java/net/minecraft/server/ChunkCache.java +++ b/src/main/java/net/minecraft/server/ChunkCache.java @@ -12,6 +12,142 @@ public class ChunkCache implements IBlockAccess, ICollisionAccess { @@ -3572,7 +3577,7 @@ index 8eecdcde51..53c977513d 100644 this.e = world; this.a = blockposition.getX() >> 4; diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java -index 3c7b225edb..f1c686810f 100644 +index 3c7b225ed..f1c686810 100644 --- a/src/main/java/net/minecraft/server/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java @@ -31,7 +31,7 @@ public abstract class ChunkMapDistance { @@ -3755,7 +3760,7 @@ index 3c7b225edb..f1c686810f 100644 for (java.util.Iterator>>> iterator = this.tickets.long2ObjectEntrySet().fastIterator(); iterator.hasNext();) { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 6acb5f05a0..84429f12d0 100644 +index 6acb5f05a..84429f12d 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -22,6 +22,12 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; // Paper @@ -4172,7 +4177,7 @@ index 6acb5f05a0..84429f12d0 100644 try { boolean execChunkTask = com.destroystokyo.paper.io.chunk.ChunkTaskManager.pollChunkWaitQueue() || ChunkProviderServer.this.world.asyncChunkTaskManager.pollNextChunkTask(); // Paper diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 8e7da2c5f3..5eb14c4cd8 100644 +index 8e7da2c5f..5eb14c4cd 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -24,6 +24,14 @@ public class ChunkRegionLoader { @@ -4204,7 +4209,7 @@ index 8e7da2c5f3..5eb14c4cd8 100644 nbttagcompound1.setString("Status", ichunkaccess.getChunkStatus().d()); ChunkConverter chunkconverter = ichunkaccess.p(); diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java -index e52df8096e..cebd808e27 100644 +index e52df8096..cebd808e2 100644 --- a/src/main/java/net/minecraft/server/ChunkSection.java +++ b/src/main/java/net/minecraft/server/ChunkSection.java @@ -96,6 +96,7 @@ public class ChunkSection { @@ -4216,7 +4221,7 @@ index e52df8096e..cebd808e27 100644 return this.nonEmptyBlockCount == 0; } diff --git a/src/main/java/net/minecraft/server/ChunkStatus.java b/src/main/java/net/minecraft/server/ChunkStatus.java -index f6c9bdbf52..51ea295d66 100644 +index f6c9bdbf5..51ea295d6 100644 --- a/src/main/java/net/minecraft/server/ChunkStatus.java +++ b/src/main/java/net/minecraft/server/ChunkStatus.java @@ -109,7 +109,7 @@ public class ChunkStatus { @@ -4238,7 +4243,7 @@ index f6c9bdbf52..51ea295d66 100644 } diff --git a/src/main/java/net/minecraft/server/DataBits.java b/src/main/java/net/minecraft/server/DataBits.java -index 26b48b5ffa..353b61aa57 100644 +index 26b48b5ff..353b61aa5 100644 --- a/src/main/java/net/minecraft/server/DataBits.java +++ b/src/main/java/net/minecraft/server/DataBits.java @@ -52,6 +52,7 @@ public class DataBits { @@ -4266,7 +4271,7 @@ index 26b48b5ffa..353b61aa57 100644 //Validate.inclusiveBetween(0L, (long) (this.e - 1), (long) i); // Paper int j = this.b(i); diff --git a/src/main/java/net/minecraft/server/DataPaletteBlock.java b/src/main/java/net/minecraft/server/DataPaletteBlock.java -index 95ef962868..73163b417a 100644 +index 95ef96286..73163b417 100644 --- a/src/main/java/net/minecraft/server/DataPaletteBlock.java +++ b/src/main/java/net/minecraft/server/DataPaletteBlock.java @@ -163,6 +163,7 @@ public class DataPaletteBlock implements DataPaletteExpandable { @@ -4278,7 +4283,7 @@ index 95ef962868..73163b417a 100644 T t0 = this.h.a(this.a.a(i)); diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 5504facd2e..fcba187bbd 100644 +index 5504facd2..fcba187bb 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -169,6 +169,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -4290,7 +4295,7 @@ index 5504facd2e..fcba187bbd 100644 this.setPVP(dedicatedserverproperties.pvp); this.setAllowFlight(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/net/minecraft/server/EULA.java b/src/main/java/net/minecraft/server/EULA.java -index 550232cb38..229c3b0f0c 100644 +index 550232cb3..229c3b0f0 100644 --- a/src/main/java/net/minecraft/server/EULA.java +++ b/src/main/java/net/minecraft/server/EULA.java @@ -70,7 +70,7 @@ public class EULA { @@ -4303,7 +4308,7 @@ index 550232cb38..229c3b0f0c 100644 throwable = throwable1; throw throwable1; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 0c952fea30..420557c270 100644 +index 0c952fea3..420557c27 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -136,7 +136,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -4684,7 +4689,7 @@ index 0c952fea30..420557c270 100644 int j = MathHelper.floor(d1); int k = MathHelper.floor(d2); diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java -index 957a351c3f..57166a543a 100644 +index 957a351c3..57166a543 100644 --- a/src/main/java/net/minecraft/server/EntityCat.java +++ b/src/main/java/net/minecraft/server/EntityCat.java @@ -292,7 +292,7 @@ public class EntityCat extends EntityTameableAnimal { @@ -4697,7 +4702,7 @@ index 957a351c3f..57166a543a 100644 this.setPersistent(); } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 7ddf276732..23007c9ccb 100644 +index 7ddf27673..23007c9cc 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -707,7 +707,13 @@ public abstract class EntityInsentient extends EntityLiving { @@ -4716,7 +4721,7 @@ index 7ddf276732..23007c9ccb 100644 if (entityhuman != null) { double d0 = entityhuman.h((Entity) this); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index fe0334b505..87cd6fb0c0 100644 +index fe0334b50..87cd6fb0c 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2847,7 +2847,11 @@ public abstract class EntityLiving extends Entity { @@ -4743,7 +4748,7 @@ index fe0334b505..87cd6fb0c0 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 4efc40c01e..f322dccd83 100644 +index 4efc40c01..f322dccd8 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -74,6 +74,7 @@ public class EntityTrackerEntry { @@ -4755,7 +4760,7 @@ index 4efc40c01e..f322dccd83 100644 if (!list.equals(this.p)) { diff --git a/src/main/java/net/minecraft/server/HeightMap.java b/src/main/java/net/minecraft/server/HeightMap.java -index 068b92c5c4..a43c4ca3ea 100644 +index 068b92c5c..a43c4ca3e 100644 --- a/src/main/java/net/minecraft/server/HeightMap.java +++ b/src/main/java/net/minecraft/server/HeightMap.java @@ -19,7 +19,25 @@ public class HeightMap { @@ -4839,7 +4844,7 @@ index 068b92c5c4..a43c4ca3ea 100644 this.i = heightmap_use; this.j = predicate; diff --git a/src/main/java/net/minecraft/server/IBlockAccess.java b/src/main/java/net/minecraft/server/IBlockAccess.java -index c4a83448ed..5c3eb4fc7e 100644 +index c4a83448e..5c3eb4fc7 100644 --- a/src/main/java/net/minecraft/server/IBlockAccess.java +++ b/src/main/java/net/minecraft/server/IBlockAccess.java @@ -55,7 +55,7 @@ public interface IBlockAccess { @@ -4852,7 +4857,7 @@ index c4a83448ed..5c3eb4fc7e 100644 Vec3D vec3d1 = raytrace1.a(); VoxelShape voxelshape = raytrace1.a(iblockdata, this, blockposition); diff --git a/src/main/java/net/minecraft/server/IChunkLoader.java b/src/main/java/net/minecraft/server/IChunkLoader.java -index 582a5695ba..5601088cd5 100644 +index 582a5695b..5601088cd 100644 --- a/src/main/java/net/minecraft/server/IChunkLoader.java +++ b/src/main/java/net/minecraft/server/IChunkLoader.java @@ -21,7 +21,7 @@ public class IChunkLoader implements AutoCloseable { @@ -4865,7 +4870,7 @@ index 582a5695ba..5601088cd5 100644 // Paper - nuke IOWorker } diff --git a/src/main/java/net/minecraft/server/ICollisionAccess.java b/src/main/java/net/minecraft/server/ICollisionAccess.java -index 25e54a1fad..b66c802d5e 100644 +index 25e54a1fa..b66c802d5 100644 --- a/src/main/java/net/minecraft/server/ICollisionAccess.java +++ b/src/main/java/net/minecraft/server/ICollisionAccess.java @@ -46,6 +46,11 @@ public interface ICollisionAccess extends IBlockAccess { @@ -4881,7 +4886,7 @@ index 25e54a1fad..b66c802d5e 100644 return this.d(entity, axisalignedbb, predicate).allMatch(VoxelShape::isEmpty); } finally { if (entity != null) entity.collisionLoadChunks = false; } // Paper diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java -index 07dbdd5609..40ca3364d4 100644 +index 07dbdd560..40ca3364d 100644 --- a/src/main/java/net/minecraft/server/IEntityAccess.java +++ b/src/main/java/net/minecraft/server/IEntityAccess.java @@ -52,16 +52,26 @@ public interface IEntityAccess { @@ -4938,7 +4943,7 @@ index 07dbdd5609..40ca3364d4 100644 } diff --git a/src/main/java/net/minecraft/server/LightEngineStorage.java b/src/main/java/net/minecraft/server/LightEngineStorage.java -index b98e60772b..e0bbfe1422 100644 +index b98e60772..e0bbfe142 100644 --- a/src/main/java/net/minecraft/server/LightEngineStorage.java +++ b/src/main/java/net/minecraft/server/LightEngineStorage.java @@ -23,7 +23,8 @@ public abstract class LightEngineStorage> e @@ -4970,7 +4975,7 @@ index b98e60772b..e0bbfe1422 100644 while (objectiterator.hasNext()) { entry = (Entry) objectiterator.next(); diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java -index c61cd50df0..d987483255 100644 +index c61cd50df..d98748325 100644 --- a/src/main/java/net/minecraft/server/LoginListener.java +++ b/src/main/java/net/minecraft/server/LoginListener.java @@ -234,7 +234,7 @@ public class LoginListener implements PacketLoginInListener { @@ -4983,7 +4988,7 @@ index c61cd50df0..d987483255 100644 throw new IllegalStateException("Protocol error", cryptographyexception); } diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index ff74be1451..653ba0f1d8 100644 +index ff74be145..653ba0f1d 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -38,6 +38,7 @@ import java.util.function.Consumer; @@ -4995,7 +5000,7 @@ index ff74be1451..653ba0f1d8 100644 0, 2, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue(), diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d0ffe5790e..08518ff57b 100644 +index d0ffe5790..08518ff57 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -155,6 +155,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { @@ -5931,7 +5936,7 @@ index 5094a5d6fb..72fdbf1534 100644 } } diff --git a/src/main/java/net/minecraft/server/PathType.java b/src/main/java/net/minecraft/server/PathType.java -index fb37f5b500..52a2d3db7d 100644 +index fb37f5b50..52a2d3db7 100644 --- a/src/main/java/net/minecraft/server/PathType.java +++ b/src/main/java/net/minecraft/server/PathType.java @@ -4,6 +4,8 @@ public enum PathType { @@ -5944,7 +5949,7 @@ index fb37f5b500..52a2d3db7d 100644 private PathType(float f) { diff --git a/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java b/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java -index 475c0764b9..9f48d476c0 100644 +index 475c0764b..9f48d476c 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java @@ -50,7 +50,7 @@ public class PathfinderGoalMoveThroughVillage extends PathfinderGoal { @@ -5966,7 +5971,7 @@ index 475c0764b9..9f48d476c0 100644 if (!optional.isPresent()) { return false; diff --git a/src/main/java/net/minecraft/server/PathfinderNormal.java b/src/main/java/net/minecraft/server/PathfinderNormal.java -index 74e81e1e4a..33804e6893 100644 +index 74e81e1e4..33804e689 100644 --- a/src/main/java/net/minecraft/server/PathfinderNormal.java +++ b/src/main/java/net/minecraft/server/PathfinderNormal.java @@ -421,6 +421,12 @@ public class PathfinderNormal extends PathfinderAbstract { @@ -6047,7 +6052,7 @@ index 74e81e1e4a..33804e6893 100644 Material material = iblockdata.getMaterial(); diff --git a/src/main/java/net/minecraft/server/PathfinderTargetCondition.java b/src/main/java/net/minecraft/server/PathfinderTargetCondition.java -index 253377c623..3ebe3d0dc4 100644 +index 253377c62..3ebe3d0dc 100644 --- a/src/main/java/net/minecraft/server/PathfinderTargetCondition.java +++ b/src/main/java/net/minecraft/server/PathfinderTargetCondition.java @@ -51,6 +51,7 @@ public class PathfinderTargetCondition { @@ -6059,7 +6064,7 @@ index 253377c623..3ebe3d0dc4 100644 if (entityliving == entityliving1) { return false; diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java -index 11a67ca18f..80cc96a4de 100644 +index 11a67ca18..80cc96a4d 100644 --- a/src/main/java/net/minecraft/server/PlayerChunk.java +++ b/src/main/java/net/minecraft/server/PlayerChunk.java @@ -56,6 +56,12 @@ public class PlayerChunk { @@ -6205,7 +6210,7 @@ index 11a67ca18f..80cc96a4de 100644 if (chunk != null) { playerchunkmap.callbackExecutor.execute(() -> { diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 6c399bcea0..2a8455b813 100644 +index 6c399bcea..8286039c4 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -121,31 +121,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -6320,7 +6325,19 @@ index 6c399bcea0..2a8455b813 100644 private final java.util.concurrent.ExecutorService lightThread; public PlayerChunkMap(WorldServer worldserver, Convertable.ConversionSession convertable_conversionsession, DataFixer datafixer, DefinedStructureManager definedstructuremanager, Executor executor, IAsyncTaskHandler iasynctaskhandler, ILightAccess ilightaccess, ChunkGenerator chunkgenerator, WorldLoadListener worldloadlistener, Supplier supplier, int i, boolean flag) { super(new File(convertable_conversionsession.a(worldserver.getDimensionKey()), "region"), datafixer, flag); -@@ -444,6 +471,26 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -310,9 +337,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + + this.worldLoadListener = worldloadlistener; + // Paper start - use light thread ++ String threadName = ((WorldDataServer)this.world.getWorldData()).getName() + " - Light"; // Tuinity - make sure playerchunkmap instance is not retained by the thread factory + ThreadedMailbox lightthreaded; ThreadedMailbox threadedmailbox1 = lightthreaded = ThreadedMailbox.a(lightThread = java.util.concurrent.Executors.newSingleThreadExecutor(r -> { + Thread thread = new Thread(r); +- thread.setName(((WorldDataServer)world.getWorldData()).getName() + " - Light"); ++ thread.setName(threadName); // Tuinity - make sure playerchunkmap instance is not retained by the thread factory + thread.setDaemon(true); + thread.setPriority(Thread.NORM_PRIORITY+1); + return thread; +@@ -444,6 +472,26 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { PlayerChunkMap.this.sendChunk(player, new ChunkCoordIntPair(rangeX, rangeZ), null, true, false); // unloaded, loaded }); // Paper end - no-tick view distance @@ -6347,7 +6364,7 @@ index 6c399bcea0..2a8455b813 100644 } // Paper start - Chunk Prioritization public void queueHolderUpdate(PlayerChunk playerchunk) { -@@ -756,6 +803,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -756,6 +804,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @Nullable private PlayerChunk a(long i, int j, @Nullable PlayerChunk playerchunk, int k) { @@ -6356,7 +6373,7 @@ index 6c399bcea0..2a8455b813 100644 if (k > PlayerChunkMap.GOLDEN_TICKET && j > PlayerChunkMap.GOLDEN_TICKET) { return playerchunk; } else { -@@ -778,6 +827,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -778,6 +828,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { playerchunk.a(j); } else { playerchunk = new PlayerChunk(new ChunkCoordIntPair(i), j, this.lightEngine, this.p, this); @@ -6364,7 +6381,7 @@ index 6c399bcea0..2a8455b813 100644 } this.updatingChunks.put(i, playerchunk); -@@ -970,7 +1020,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -970,7 +1021,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.world, chunkPos.x, chunkPos.z, @@ -6373,7 +6390,7 @@ index 6c399bcea0..2a8455b813 100644 if (!chunk.isNeedsSaving()) { return; -@@ -1004,7 +1054,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1004,7 +1055,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { asyncSaveData = ChunkRegionLoader.getAsyncSaveData(this.world, chunk); } @@ -6382,7 +6399,7 @@ index 6c399bcea0..2a8455b813 100644 asyncSaveData, chunk); chunk.setLastSaved(this.world.getTime()); -@@ -1012,6 +1062,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1012,6 +1063,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } // Paper end @@ -6391,7 +6408,7 @@ index 6c399bcea0..2a8455b813 100644 private void a(long i, PlayerChunk playerchunk) { CompletableFuture completablefuture = playerchunk.getChunkSave(); Consumer consumer = (ichunkaccess) -> { // CraftBukkit - decompile error -@@ -1020,7 +1072,15 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1020,7 +1073,15 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { if (completablefuture1 != completablefuture) { this.a(i, playerchunk); } else { @@ -6408,7 +6425,7 @@ index 6c399bcea0..2a8455b813 100644 if (ichunkaccess instanceof Chunk) { ((Chunk) ichunkaccess).setLoaded(false); } -@@ -1044,6 +1104,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1044,6 +1105,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { this.lightEngine.queueUpdate(); this.worldLoadListener.a(ichunkaccess.getPos(), (ChunkStatus) null); } @@ -6417,7 +6434,7 @@ index 6c399bcea0..2a8455b813 100644 } }; -@@ -1059,6 +1121,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1059,6 +1122,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } protected boolean b() { @@ -6425,7 +6442,7 @@ index 6c399bcea0..2a8455b813 100644 if (!this.updatingChunksModified) { return false; } else { -@@ -1246,7 +1309,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1246,7 +1310,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } // Paper end this.mailboxWorldGen.a(ChunkTaskQueueSorter.a(playerchunk, runnable)); @@ -6437,7 +6454,7 @@ index 6c399bcea0..2a8455b813 100644 } protected void c(ChunkCoordIntPair chunkcoordintpair) { -@@ -1498,6 +1564,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1498,6 +1565,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } public void setViewDistance(int i) { // Paper - public @@ -6445,7 +6462,7 @@ index 6c399bcea0..2a8455b813 100644 int j = MathHelper.clamp(i + 1, 3, 33); // Paper - diff on change, these make the lower view distance limit 2 and the upper 32 if (j != this.viewDistance) { -@@ -1511,6 +1578,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1511,6 +1579,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { // Paper start - no-tick view distance public final void setNoTickViewDistance(int viewDistance) { @@ -6453,7 +6470,7 @@ index 6c399bcea0..2a8455b813 100644 viewDistance = viewDistance == -1 ? -1 : MathHelper.clamp(viewDistance, 2, 32); this.noTickViewDistance = viewDistance; -@@ -1626,7 +1694,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1626,7 +1695,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { if (Thread.currentThread() != com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE) { com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave( this.world, chunkcoordintpair.x, chunkcoordintpair.z, null, nbttagcompound, @@ -6462,7 +6479,7 @@ index 6c399bcea0..2a8455b813 100644 return; } super.write(chunkcoordintpair, nbttagcompound); -@@ -1710,6 +1778,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1710,6 +1779,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { return chunkHolder == null ? null : chunkHolder.getAvailableChunkNow(); } // Paper end @@ -6474,7 +6491,7 @@ index 6c399bcea0..2a8455b813 100644 // Paper start - async io -@@ -2037,22 +2110,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -2037,22 +2111,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private final void processTrackQueue() { this.world.timings.tracker1.startTiming(); try { @@ -6514,7 +6531,7 @@ index 6c399bcea0..2a8455b813 100644 } // Paper end - optimised tracker diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 563ae7355f..b89caa8ad1 100644 +index 563ae7355..b89caa8ad 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -415,7 +415,9 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -6564,7 +6581,7 @@ index 563ae7355f..b89caa8ad1 100644 } else { // CraftBukkit start - fire PlayerMoveEvent diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java -index 7ea293f38d..e698dd2260 100644 +index 7ea293f38..e698dd226 100644 --- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java +++ b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java @@ -13,10 +13,30 @@ public class PlayerConnectionUtils { @@ -6612,7 +6629,7 @@ index 7ea293f38d..e698dd2260 100644 }); throw CancelledPacketHandleException.INSTANCE; diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java -index 485b609bb5..614cfacb1e 100644 +index 485b609bb..614cfacb1 100644 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java @@ -21,14 +21,29 @@ public class PlayerInteractManager { @@ -6747,7 +6764,7 @@ index 485b609bb5..614cfacb1e 100644 this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition)); // CraftBukkit - SPIGOT-5196 } diff --git a/src/main/java/net/minecraft/server/ProtoChunk.java b/src/main/java/net/minecraft/server/ProtoChunk.java -index 5b0cd414ca..a3ac883500 100644 +index 5b0cd414c..a3ac88350 100644 --- a/src/main/java/net/minecraft/server/ProtoChunk.java +++ b/src/main/java/net/minecraft/server/ProtoChunk.java @@ -179,14 +179,11 @@ public class ProtoChunk implements IChunkAccess { @@ -6783,7 +6800,7 @@ index 5b0cd414ca..a3ac883500 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 1751fb6934..1ffa213a81 100644 +index e969625d2..3dfd91513 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java @@ -5,6 +5,7 @@ import java.io.BufferedInputStream; @@ -7409,7 +7426,7 @@ index 1751fb6934..1ffa213a81 100644 ((java.nio.Buffer) this.g).position(0); this.dataFile.write(this.g, 0L); diff --git a/src/main/java/net/minecraft/server/RegionFileBitSet.java b/src/main/java/net/minecraft/server/RegionFileBitSet.java -index 1ebdf73cc9..cfa3ecb031 100644 +index 1ebdf73cc..cfa3ecb03 100644 --- a/src/main/java/net/minecraft/server/RegionFileBitSet.java +++ b/src/main/java/net/minecraft/server/RegionFileBitSet.java @@ -4,18 +4,42 @@ import java.util.BitSet; @@ -7457,7 +7474,7 @@ index 1ebdf73cc9..cfa3ecb031 100644 int j = 0; diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index d64f7ad925..8b341c14e7 100644 +index d64f7ad92..8b341c14e 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -15,12 +15,43 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final @@ -7549,7 +7566,7 @@ index d64f7ad925..8b341c14e7 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFileCompression.java b/src/main/java/net/minecraft/server/RegionFileCompression.java -index 3382d678e6..3b7894256d 100644 +index 3382d678e..3b7894256 100644 --- a/src/main/java/net/minecraft/server/RegionFileCompression.java +++ b/src/main/java/net/minecraft/server/RegionFileCompression.java @@ -13,7 +13,7 @@ import javax.annotation.Nullable; @@ -7589,7 +7606,7 @@ index 3382d678e6..3b7894256d 100644 return (InputStream) this.f.wrap(inputstream); } diff --git a/src/main/java/net/minecraft/server/RegionFileSection.java b/src/main/java/net/minecraft/server/RegionFileSection.java -index 04256a9510..d9362b74fd 100644 +index 04256a951..d9362b74f 100644 --- a/src/main/java/net/minecraft/server/RegionFileSection.java +++ b/src/main/java/net/minecraft/server/RegionFileSection.java @@ -50,8 +50,8 @@ public class RegionFileSection extends RegionFileCache implements AutoCloseab @@ -7604,7 +7621,7 @@ index 04256a9510..d9362b74fd 100644 } diff --git a/src/main/java/net/minecraft/server/SensorNearestBed.java b/src/main/java/net/minecraft/server/SensorNearestBed.java -index ad3609f2b8..d3d28f97f9 100644 +index ad3609f2b..d3d28f97f 100644 --- a/src/main/java/net/minecraft/server/SensorNearestBed.java +++ b/src/main/java/net/minecraft/server/SensorNearestBed.java @@ -40,15 +40,15 @@ public class SensorNearestBed extends Sensor { @@ -7627,7 +7644,7 @@ index ad3609f2b8..d3d28f97f9 100644 } else if (this.b < 5) { this.a.long2LongEntrySet().removeIf((entry) -> { diff --git a/src/main/java/net/minecraft/server/SensorNearestItems.java b/src/main/java/net/minecraft/server/SensorNearestItems.java -index 2e747158d4..1de170b9fe 100644 +index 2e747158d..1de170b9f 100644 --- a/src/main/java/net/minecraft/server/SensorNearestItems.java +++ b/src/main/java/net/minecraft/server/SensorNearestItems.java @@ -18,20 +18,23 @@ public class SensorNearestItems extends Sensor { @@ -7667,7 +7684,7 @@ index 2e747158d4..1de170b9fe 100644 behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, optional); } diff --git a/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java b/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java -index f6568a54ab..4005df5ef3 100644 +index f6568a54a..4005df5ef 100644 --- a/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java +++ b/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java @@ -21,10 +21,17 @@ public class SensorNearestLivingEntities extends Sensor { @@ -7693,7 +7710,7 @@ index f6568a54ab..4005df5ef3 100644 @Override diff --git a/src/main/java/net/minecraft/server/SensorNearestPlayers.java b/src/main/java/net/minecraft/server/SensorNearestPlayers.java -index 904a6d5ac6..c8e43a9f2a 100644 +index 904a6d5ac..c8e43a9f2 100644 --- a/src/main/java/net/minecraft/server/SensorNearestPlayers.java +++ b/src/main/java/net/minecraft/server/SensorNearestPlayers.java @@ -19,22 +19,30 @@ public class SensorNearestPlayers extends Sensor { @@ -7743,7 +7760,7 @@ index 904a6d5ac6..c8e43a9f2a 100644 } } diff --git a/src/main/java/net/minecraft/server/SensorVillagerBabies.java b/src/main/java/net/minecraft/server/SensorVillagerBabies.java -index a367bbfde4..794b33a13b 100644 +index a367bbfde..794b33a13 100644 --- a/src/main/java/net/minecraft/server/SensorVillagerBabies.java +++ b/src/main/java/net/minecraft/server/SensorVillagerBabies.java @@ -17,11 +17,23 @@ public class SensorVillagerBabies extends Sensor { @@ -7773,7 +7790,7 @@ index a367bbfde4..794b33a13b 100644 private boolean b(EntityLiving entityliving) { diff --git a/src/main/java/net/minecraft/server/ServerConnection.java b/src/main/java/net/minecraft/server/ServerConnection.java -index 5f4dacf9c9..0668d383db 100644 +index 5f4dacf9c..0668d383d 100644 --- a/src/main/java/net/minecraft/server/ServerConnection.java +++ b/src/main/java/net/minecraft/server/ServerConnection.java @@ -74,6 +74,11 @@ public class ServerConnection { @@ -7789,7 +7806,7 @@ index 5f4dacf9c9..0668d383db 100644 protected void initChannel(Channel channel) throws Exception { try { diff --git a/src/main/java/net/minecraft/server/StructureManager.java b/src/main/java/net/minecraft/server/StructureManager.java -index f199368a6d..2598ae3710 100644 +index f199368a6..2598ae371 100644 --- a/src/main/java/net/minecraft/server/StructureManager.java +++ b/src/main/java/net/minecraft/server/StructureManager.java @@ -35,8 +35,13 @@ public class StructureManager { @@ -7822,7 +7839,7 @@ index f199368a6d..2598ae3710 100644 if (!flag) { return structurestart; diff --git a/src/main/java/net/minecraft/server/Ticket.java b/src/main/java/net/minecraft/server/Ticket.java -index e41cb8613e..c19ffb925a 100644 +index e41cb8613..c19ffb925 100644 --- a/src/main/java/net/minecraft/server/Ticket.java +++ b/src/main/java/net/minecraft/server/Ticket.java @@ -5,17 +5,17 @@ import java.util.Objects; @@ -7859,7 +7876,7 @@ index e41cb8613e..c19ffb925a 100644 return j != 0L && i - this.d > j; } diff --git a/src/main/java/net/minecraft/server/TicketType.java b/src/main/java/net/minecraft/server/TicketType.java -index 5c789b25f1..25cff70b45 100644 +index 5c789b25f..25cff70b4 100644 --- a/src/main/java/net/minecraft/server/TicketType.java +++ b/src/main/java/net/minecraft/server/TicketType.java @@ -26,8 +26,19 @@ public class TicketType { @@ -7884,7 +7901,7 @@ index 5c789b25f1..25cff70b45 100644 return new TicketType<>(s, comparator, 0L); } diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java -index 2484293b12..1496c43fc9 100644 +index 2484293b1..1496c43fc 100644 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -49,6 +49,11 @@ public class UserCache { @@ -7969,7 +7986,7 @@ index 2484293b12..1496c43fc9 100644 private static JsonElement a(UserCache.UserCacheEntry usercache_usercacheentry, DateFormat dateformat) { diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java -index 7f05587d42..5af554870b 100644 +index 7f05587d4..5af554870 100644 --- a/src/main/java/net/minecraft/server/Vec3D.java +++ b/src/main/java/net/minecraft/server/Vec3D.java @@ -4,7 +4,7 @@ import java.util.EnumSet; @@ -8003,7 +8020,7 @@ index 7f05587d42..5af554870b 100644 return this.x * this.x + this.y * this.y + this.z * this.z; } diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java -index b926cebd05..3c9668c9c3 100644 +index b926cebd0..3c9668c9c 100644 --- a/src/main/java/net/minecraft/server/VillagePlace.java +++ b/src/main/java/net/minecraft/server/VillagePlace.java @@ -165,7 +165,7 @@ public class VillagePlace extends RegionFileSection { @@ -8033,7 +8050,7 @@ index b926cebd05..3c9668c9c3 100644 return this.d; } diff --git a/src/main/java/net/minecraft/server/VillagePlaceRecord.java b/src/main/java/net/minecraft/server/VillagePlaceRecord.java -index 0b40c2f4da..6eaf9fc9cc 100644 +index 0b40c2f4d..6eaf9fc9c 100644 --- a/src/main/java/net/minecraft/server/VillagePlaceRecord.java +++ b/src/main/java/net/minecraft/server/VillagePlaceRecord.java @@ -6,7 +6,7 @@ import java.util.Objects; @@ -8046,7 +8063,7 @@ index 0b40c2f4da..6eaf9fc9cc 100644 private int c; private final Runnable d; diff --git a/src/main/java/net/minecraft/server/VillagePlaceSection.java b/src/main/java/net/minecraft/server/VillagePlaceSection.java -index 77c66bc995..f43bc1f7d6 100644 +index 77c66bc99..f43bc1f7d 100644 --- a/src/main/java/net/minecraft/server/VillagePlaceSection.java +++ b/src/main/java/net/minecraft/server/VillagePlaceSection.java @@ -23,12 +23,12 @@ public class VillagePlaceSection { @@ -8065,7 +8082,7 @@ index 77c66bc995..f43bc1f7d6 100644 return villageplacesection.e; }), VillagePlaceRecord.a(runnable).listOf().fieldOf("Records").forGetter((villageplacesection) -> { diff --git a/src/main/java/net/minecraft/server/VoxelShape.java b/src/main/java/net/minecraft/server/VoxelShape.java -index eb926b74e1..700660dd93 100644 +index eb926b74e..700660dd9 100644 --- a/src/main/java/net/minecraft/server/VoxelShape.java +++ b/src/main/java/net/minecraft/server/VoxelShape.java @@ -8,11 +8,11 @@ import javax.annotation.Nullable; @@ -8108,7 +8125,7 @@ index eb926b74e1..700660dd93 100644 List list = Lists.newArrayList(); diff --git a/src/main/java/net/minecraft/server/VoxelShapeArray.java b/src/main/java/net/minecraft/server/VoxelShapeArray.java -index 3c29cb1452..c14b7bd63e 100644 +index 3c29cb145..c14b7bd63 100644 --- a/src/main/java/net/minecraft/server/VoxelShapeArray.java +++ b/src/main/java/net/minecraft/server/VoxelShapeArray.java @@ -3,6 +3,7 @@ package net.minecraft.server; @@ -8229,7 +8246,7 @@ index 3c29cb1452..c14b7bd63e 100644 + // Tuinity end - optimise multi-aabb shapes } diff --git a/src/main/java/net/minecraft/server/VoxelShapeSpliterator.java b/src/main/java/net/minecraft/server/VoxelShapeSpliterator.java -index e841611bb7..259605daab 100644 +index e841611bb..259605daa 100644 --- a/src/main/java/net/minecraft/server/VoxelShapeSpliterator.java +++ b/src/main/java/net/minecraft/server/VoxelShapeSpliterator.java @@ -91,7 +91,7 @@ public class VoxelShapeSpliterator extends AbstractSpliterator { @@ -8242,7 +8259,7 @@ index e841611bb7..259605daab 100644 } diff --git a/src/main/java/net/minecraft/server/VoxelShapes.java b/src/main/java/net/minecraft/server/VoxelShapes.java -index e21c747b6c..db735e29d4 100644 +index e21c747b6..db735e29d 100644 --- a/src/main/java/net/minecraft/server/VoxelShapes.java +++ b/src/main/java/net/minecraft/server/VoxelShapes.java @@ -17,18 +17,80 @@ public final class VoxelShapes { @@ -8371,7 +8388,7 @@ index e21c747b6c..db735e29d4 100644 @VisibleForTesting diff --git a/src/main/java/net/minecraft/server/WeightedList.java b/src/main/java/net/minecraft/server/WeightedList.java -index 5d9d58411f..f0fdfd6891 100644 +index 5d9d58411..f0fdfd689 100644 --- a/src/main/java/net/minecraft/server/WeightedList.java +++ b/src/main/java/net/minecraft/server/WeightedList.java @@ -14,7 +14,7 @@ import java.util.stream.Stream; @@ -8393,7 +8410,7 @@ index 5d9d58411f..f0fdfd6891 100644 private double c; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index d64d94b8c3..f7103ec2a9 100644 +index d64d94b8c..f7103ec2a 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -94,6 +94,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -8657,7 +8674,7 @@ index d64d94b8c3..f7103ec2a9 100644 public abstract Entity getEntity(int i); diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java -index f011869880..26a8c4ffe2 100644 +index f01186988..26a8c4ffe 100644 --- a/src/main/java/net/minecraft/server/WorldBorder.java +++ b/src/main/java/net/minecraft/server/WorldBorder.java @@ -47,11 +47,43 @@ public class WorldBorder { @@ -8728,7 +8745,7 @@ index f011869880..26a8c4ffe2 100644 return this.j.d(); } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index b196810316..274a383be1 100644 +index b19681031..274a383be 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -55,12 +55,13 @@ import org.bukkit.event.server.MapInitializeEvent; @@ -9555,7 +9572,7 @@ index b196810316..274a383be1 100644 this.tickingEntities = wasTicking; // Paper } diff --git a/src/main/java/net/minecraft/server/WorldUpgrader.java b/src/main/java/net/minecraft/server/WorldUpgrader.java -index 5ccdc0b87b..888dae2d5e 100644 +index 5ccdc0b87..888dae2d5 100644 --- a/src/main/java/net/minecraft/server/WorldUpgrader.java +++ b/src/main/java/net/minecraft/server/WorldUpgrader.java @@ -218,7 +218,7 @@ public class WorldUpgrader { @@ -9568,7 +9585,7 @@ index 5ccdc0b87b..888dae2d5e 100644 try { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4e1b4d7cde..9bf854b5a2 100644 +index 4e1b4d7cd..9bf854b5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper @@ -9624,7 +9641,7 @@ index 4e1b4d7cde..9bf854b5a2 100644 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 299f57ca2a..4de6252f07 100644 +index 299f57ca2..4de6252f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -341,6 +341,14 @@ public class CraftWorld implements World { @@ -9676,7 +9693,7 @@ index 299f57ca2a..4de6252f07 100644 }, MinecraftServer.getServer()); } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 9118f05424..a9c96d45c6 100644 +index 9118f0542..a9c96d45c 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -138,6 +138,13 @@ public class Main { @@ -9703,7 +9720,7 @@ index 9118f05424..a9c96d45c6 100644 //Thread.sleep(TimeUnit.SECONDS.toMillis(20)); // Paper End diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 4ec0e9220d..1fe253bc72 100644 +index 4ec0e9220..1fe253bc7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -503,27 +503,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -9774,7 +9791,7 @@ index 4ec0e9220d..1fe253bc72 100644 public boolean teleport(org.bukkit.entity.Entity destination) { return teleport(destination.getLocation()); diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java -index fd32d1450a..c38e514b00 100644 +index fd32d1450..c38e514b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java @@ -25,6 +25,10 @@ class CraftAsyncTask extends CraftTask { @@ -9797,7 +9814,7 @@ index fd32d1450a..c38e514b00 100644 LinkedList getWorkers() { diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java -index 6fa2e271f7..3a9491e949 100644 +index 6fa2e271f..3a9491e94 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java @@ -113,9 +113,18 @@ public final class CraftScoreboardManager implements ScoreboardManager { @@ -9820,7 +9837,7 @@ index 6fa2e271f7..3a9491e949 100644 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java b/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java -index f72c13beda..7c0d90552e 100644 +index f72c13bed..7c0d90552 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java +++ b/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java @@ -35,6 +35,13 @@ public class UnsafeList extends AbstractList implements List, RandomAcc @@ -9871,7 +9888,7 @@ index f72c13beda..7c0d90552e 100644 public void clear() { // Create new array to reset memory usage to initial capacity diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java -index 674096cab1..001b1e5197 100644 +index 674096cab..001b1e519 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java @@ -11,7 +11,7 @@ public final class Versioning { @@ -9884,7 +9901,7 @@ index 674096cab1..001b1e5197 100644 if (stream != null) { diff --git a/src/main/java/org/spigotmc/AsyncCatcher.java b/src/main/java/org/spigotmc/AsyncCatcher.java -index 9f7d2ef932..51e9c54cdd 100644 +index 9f7d2ef93..51e9c54cd 100644 --- a/src/main/java/org/spigotmc/AsyncCatcher.java +++ b/src/main/java/org/spigotmc/AsyncCatcher.java @@ -10,8 +10,9 @@ public class AsyncCatcher @@ -9899,7 +9916,7 @@ index 9f7d2ef932..51e9c54cdd 100644 } } diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 513c1041c3..4d31090848 100644 +index 513c1041c..4d3109084 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -61,6 +61,84 @@ public class WatchdogThread extends Thread