diff --git a/PATCHES.md b/PATCHES.md index 7ee4ac29..5e6e42e4 100644 --- a/PATCHES.md +++ b/PATCHES.md @@ -173,10 +173,12 @@ # Patches | server | Do not retain playerchunkmap instance in light thread factory | Spottedleaf | | | server | Do not run close logic for inventories on chunk unload | Spottedleaf | | | server | Do not run raytrace logic for AIR | Spottedleaf | | +| server | Do not update TE's in generating chunks | Spottedleaf | | | server | Don't allow StructureLocateEvent to change worlds | Spottedleaf | | | server | Don't get entity equipment if not needed | Paul Sauve | | | server | Don't load chunk with seed based feature search | Phoenix616 | | | server | Don't lookup fluid state when raytracing | Spottedleaf | | +| server | Don't read neighbour chunk data off disk when converting | Spottedleaf | | | server | Don't trigger Lootable Refresh for non player interaction | Aikar | | | server | Don't wake up entities when damage event is cancelled | Phoenix616 | | | server | Dont run with scissors! | JustDoom | | @@ -203,7 +205,6 @@ # Patches | server | Fix IndexOutOfBoundsException when sending too many changes | Ivan Pekov | | | server | Fix LightEngineThreaded memory leak | Ivan Pekov | | | server | Fix NPE in pickup logic for arrow | Spottedleaf | | -| server | Fix PlayerEditBookEvent not saving new book | BillyGalbreath | | | server | Fix chunks refusing to unload at low TPS | Spottedleaf | | | server | Fix cow rotation when shearing mooshroom | William Blake Galbreath | | | server | Fix exp drop of zombie pigmen (MC-56653) | Phoenix616 | | @@ -305,7 +306,7 @@ # Patches | server | Option for Villager Clerics to farm Nether Wart | jmp | | | server | Option for chests to open even with a solid block on top | jmp | | | server | Option for simpler Villagers | tr7zw | | -| server | Option to make doors require restone | BillyGalbreath | | +| server | Option to make doors require redstone | BillyGalbreath | | | server | Option to toggle milk curing bad omen | William Blake Galbreath | | | server | Origami - Fix ProtocolLib issues on Java 15 | Phoenix616 | | | server | Origami Server Config | Phoenix616 | | @@ -383,6 +384,7 @@ # Patches | server | Spread out and optimise player list ticks | James Lyne | | | server | Squid EAR immunity | William Blake Galbreath | | | server | Stonecutter damage | William Blake Galbreath | | +| server | Stop large move vectors in player packet handling from | Spottedleaf | | | server | Stop squids floating on top of water | William Blake Galbreath | | | server | Stop wasting resources on JsonList#get | Ivan Pekov | | | server | Striders give saddle back | Ben Kerllenevich | | diff --git a/Paper b/Paper index 211f8e04..4492bc4c 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 211f8e041c69147d305897bfbba251295e93eaa9 +Subproject commit 4492bc4cc18d29471ae6ab58dc20c8212cf6e5b8 diff --git a/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch b/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch index bbdf7945..1d4b67e5 100644 --- a/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch +++ b/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch @@ -20,10 +20,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/pom.xml b/pom.xml -index dad9981b1cd1ca8b27a45972188fd2b92f5146e7..a3a3b17f3b30b55bb50905353e77723091bb5c1f 100644 +index de7da911833569c97b7f800a43ee7354d19677e2..ed18cc4a00761d3a4f435bcccbfd651a3201238d 100644 --- a/pom.xml +++ b/pom.xml -@@ -27,8 +27,8 @@ +@@ -39,8 +39,8 @@ diff --git a/patches/Airplane/patches/server/0003-Airplane-Configuration.patch b/patches/Airplane/patches/server/0003-Airplane-Configuration.patch index cff5c753..d53048a0 100644 --- a/patches/Airplane/patches/server/0003-Airplane-Configuration.patch +++ b/patches/Airplane/patches/server/0003-Airplane-Configuration.patch @@ -22,10 +22,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/pom.xml b/pom.xml -index a3a3b17f3b30b55bb50905353e77723091bb5c1f..f9ead3ed315a3e726233545f35358cca0fc68e06 100644 +index ed18cc4a00761d3a4f435bcccbfd651a3201238d..a148af69be216d2869538d402d9a0d12c81b5df6 100644 --- a/pom.xml +++ b/pom.xml -@@ -159,6 +159,13 @@ +@@ -166,6 +166,13 @@ 1.1.0-SNAPSHOT compile diff --git a/patches/Airplane/patches/server/0005-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/Airplane/patches/server/0005-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch index 879bab6e..326e817a 100644 --- a/patches/Airplane/patches/server/0005-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch +++ b/patches/Airplane/patches/server/0005-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch @@ -55,7 +55,7 @@ index cc566784c7dd21cc2c44e0f351347f657e57ddcf..e9e7fcf2b63febe2a7d055826fabb86b return d0 == 0.0D ? 0 : (d0 > 0.0D ? 1 : -1); } diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 561905be42428855a07a2e63aca80d5dd63b22bf..d991e3be65dc94597bd56ad9e034972e0e99a840 100644 +index d933323d57a2a7ff283408f12d4650699f8177e7..d1afe52dfd2da1d168a62aa339b48fb044e7ff50 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -111,6 +111,7 @@ import net.minecraft.world.phys.AxisAlignedBB; diff --git a/patches/Airplane/patches/server/0008-Swap-priority-of-checks-in-chunk-ticking.patch b/patches/Airplane/patches/server/0008-Swap-priority-of-checks-in-chunk-ticking.patch index 9b0a5634..02a0fed6 100644 --- a/patches/Airplane/patches/server/0008-Swap-priority-of-checks-in-chunk-ticking.patch +++ b/patches/Airplane/patches/server/0008-Swap-priority-of-checks-in-chunk-ticking.patch @@ -23,10 +23,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 655e994376dcc65f4fd76e182d4ef5bc20142063..0440aa285226d5ed1853c059d91b5779501e95d1 100644 +index fcf9af44702f34d75185eee0b3259fe0e57001b1..c2711c2d5405a5ddcf99ce7a4fbc997b403bd2f2 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1210,7 +1210,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1212,7 +1212,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { gameprofilerfiller.enter("thunder"); final BlockPosition.MutableBlockPosition blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change diff --git a/patches/Airplane/patches/server/0010-Optimize-random-calls-in-chunk-ticking.patch b/patches/Airplane/patches/server/0010-Optimize-random-calls-in-chunk-ticking.patch index 972d09e7..0db53084 100644 --- a/patches/Airplane/patches/server/0010-Optimize-random-calls-in-chunk-ticking.patch +++ b/patches/Airplane/patches/server/0010-Optimize-random-calls-in-chunk-ticking.patch @@ -46,10 +46,10 @@ index fe040615ff03478a20cdf8376f89a6b7d100ba61..207a9c3928aad7c6e89a120b54d87e00 boolean flag2 = world.ticksPerAnimalSpawns != 0L && worlddata.getTime() % world.ticksPerAnimalSpawns == 0L; // CraftBukkit diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 0440aa285226d5ed1853c059d91b5779501e95d1..8fa26ce7a9eed8ec43791079d6416eb2cd4a9398 100644 +index c2711c2d5405a5ddcf99ce7a4fbc997b403bd2f2..78443d5bf8f1f297cf68a88d8caf8e8abc9cdba7 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1200,6 +1200,8 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1202,6 +1202,8 @@ public class WorldServer extends World implements GeneratorAccessSeed { private final BiomeBase[] biomeBaseCache = new BiomeBase[1]; // Tuinity end - optimise chunk ice snow ticking @@ -58,7 +58,7 @@ index 0440aa285226d5ed1853c059d91b5779501e95d1..8fa26ce7a9eed8ec43791079d6416eb2 public void a(Chunk chunk, int i) { final int randomTickSpeed = i; // Paper ChunkCoordIntPair chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); -@@ -1210,7 +1212,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1212,7 +1214,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { gameprofilerfiller.enter("thunder"); final BlockPosition.MutableBlockPosition blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change @@ -67,7 +67,7 @@ index 0440aa285226d5ed1853c059d91b5779501e95d1..8fa26ce7a9eed8ec43791079d6416eb2 blockposition.setValues(this.a(this.a(j, 0, k, 15))); // Paper if (this.isRainingAt(blockposition)) { DifficultyDamageScaler difficultydamagescaler = this.getDamageScaler(blockposition); -@@ -1234,7 +1236,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1236,7 +1238,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } gameprofilerfiller.exitEnter("iceandsnow"); diff --git a/patches/Airplane/patches/server/0011-Don-t-get-entity-equipment-if-not-needed.patch b/patches/Airplane/patches/server/0011-Don-t-get-entity-equipment-if-not-needed.patch index 63d46e52..534ff2ff 100644 --- a/patches/Airplane/patches/server/0011-Don-t-get-entity-equipment-if-not-needed.patch +++ b/patches/Airplane/patches/server/0011-Don-t-get-entity-equipment-if-not-needed.patch @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index d991e3be65dc94597bd56ad9e034972e0e99a840..1a7866bed9cb7f0431454d3af4733de05c0cba78 100644 +index d1afe52dfd2da1d168a62aa339b48fb044e7ff50..5c983a441cd2a06eae6e79bc07ba5440d294574b 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -910,11 +910,13 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Airplane/patches/server/0013-Reduce-allocs-improve-perf-of-StructureManager.patch b/patches/Airplane/patches/server/0013-Reduce-allocs-improve-perf-of-StructureManager.patch index beb93e94..21a34436 100644 --- a/patches/Airplane/patches/server/0013-Reduce-allocs-improve-perf-of-StructureManager.patch +++ b/patches/Airplane/patches/server/0013-Reduce-allocs-improve-perf-of-StructureManager.patch @@ -25,10 +25,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java -index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c61776c1ac3f2 100644 +index 43418273f00f3703c7bd86586847d469af92c18f..d11e79093f9a5121c98b7da840bc79d204895b65 100644 --- a/src/main/java/net/minecraft/world/level/StructureManager.java +++ b/src/main/java/net/minecraft/world/level/StructureManager.java -@@ -15,6 +15,11 @@ import net.minecraft.world.level.levelgen.feature.StructureGenerator; +@@ -16,6 +16,11 @@ import net.minecraft.world.level.levelgen.feature.StructureGenerator; import net.minecraft.world.level.levelgen.structure.StructurePiece; import net.minecraft.world.level.levelgen.structure.StructureStart; @@ -40,7 +40,7 @@ index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c6177 public class StructureManager { private final GeneratorAccess a; public GeneratorAccess getLevel() { return a; } // Paper - OBFHELPER -@@ -51,13 +56,15 @@ public class StructureManager { +@@ -52,13 +57,15 @@ public class StructureManager { public java.util.List> getFeatureStarts(SectionPosition sectionPosition, StructureGenerator structureGenerator, IWorldReader world) { // Tuinity end - add world parameter java.util.List> list = new ObjectArrayList<>(); @@ -59,7 +59,7 @@ index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c6177 return list; } // Paper end -@@ -85,7 +92,18 @@ public class StructureManager { +@@ -86,7 +93,18 @@ public class StructureManager { } public StructureStart getStructureStarts(BlockPosition blockposition, boolean flag, StructureGenerator structuregenerator, IWorldReader world) { // Paper start - remove structure streams @@ -79,7 +79,7 @@ index acacbf9617f99b97fc7fd2ba718775e1b3e429e9..967ae0212028d57d366497f7f25c6177 if (structurestart.c().b(blockposition)) { if (!flag) { return structurestart; -@@ -96,7 +114,10 @@ public class StructureManager { +@@ -97,7 +115,10 @@ public class StructureManager { } } } diff --git a/patches/Airplane/patches/server/0017-Airplane-Profiler.patch b/patches/Airplane/patches/server/0017-Airplane-Profiler.patch index af45938c..d8b092ae 100644 --- a/patches/Airplane/patches/server/0017-Airplane-Profiler.patch +++ b/patches/Airplane/patches/server/0017-Airplane-Profiler.patch @@ -20,10 +20,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/pom.xml b/pom.xml -index f9ead3ed315a3e726233545f35358cca0fc68e06..988a4464b1c84f7aa973269f1c109fb49b1b4d4b 100644 +index a148af69be216d2869538d402d9a0d12c81b5df6..8a73569a4927e046940e5c12ad75ab071ea8aa91 100644 --- a/pom.xml +++ b/pom.xml -@@ -166,8 +166,23 @@ +@@ -173,8 +173,23 @@ fe3dbb4420 compile diff --git a/patches/Airplane/patches/server/0019-Reduce-entity-chunk-ticking-checks-from-3-to-1.patch b/patches/Airplane/patches/server/0019-Reduce-entity-chunk-ticking-checks-from-3-to-1.patch index a25fe1c8..86b308eb 100644 --- a/patches/Airplane/patches/server/0019-Reduce-entity-chunk-ticking-checks-from-3-to-1.patch +++ b/patches/Airplane/patches/server/0019-Reduce-entity-chunk-ticking-checks-from-3-to-1.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reduce entity chunk ticking checks from 3 to 1 diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 8fa26ce7a9eed8ec43791079d6416eb2cd4a9398..81b0ced87adbeffc7fd2343910735cd0f4c1bf13 100644 +index 78443d5bf8f1f297cf68a88d8caf8e8abc9cdba7..10dcb8066493ddb2895e60f5d8d6f241c5f474fa 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1081,11 +1081,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1083,11 +1083,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit end */ gameprofilerfiller.enter("checkDespawn"); @@ -22,7 +22,7 @@ index 8fa26ce7a9eed8ec43791079d6416eb2cd4a9398..81b0ced87adbeffc7fd2343910735cd0 this.updateNavigatorsInRegion(entity); } } else { -@@ -1115,7 +1116,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1117,7 +1118,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.entitiesById.remove(entity.getId()); // Tuinity this.unregisterEntity(entity); } else if (entity.inChunk && entity.valid) { // Tuinity start - optimise notify() @@ -31,7 +31,7 @@ index 8fa26ce7a9eed8ec43791079d6416eb2cd4a9398..81b0ced87adbeffc7fd2343910735cd0 this.updateNavigatorsInRegion(entity); } } else { -@@ -1415,7 +1416,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1417,7 +1418,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // Tuinity end - log detailed entity tick information @@ -42,7 +42,7 @@ index 8fa26ce7a9eed8ec43791079d6416eb2cd4a9398..81b0ced87adbeffc7fd2343910735cd0 // Tuinity start - log detailed entity tick information com.tuinity.tuinity.util.TickThread.ensureTickThread("Cannot tick an entity off-main"); try { -@@ -1423,7 +1426,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1425,7 +1428,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { currentlyTickingEntity.lazySet(entity); } // Tuinity end - log detailed entity tick information diff --git a/patches/Empirecraft/patches/server/0003-dont-load-chunks-for-physics.patch b/patches/Empirecraft/patches/server/0003-dont-load-chunks-for-physics.patch index 238ffe6a..459bf397 100644 --- a/patches/Empirecraft/patches/server/0003-dont-load-chunks-for-physics.patch +++ b/patches/Empirecraft/patches/server/0003-dont-load-chunks-for-physics.patch @@ -19,10 +19,10 @@ index ad9ccd07cc9f49c9d5b106b9078a4ed2ae8d3413..1814f9fe3a43b7bd06e920066e350060 try { // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index c47c98480572e83b1385fcd62940d4c69a79f9dc..e41615d7583d5485e31fbc0012925a24638101b8 100644 +index 4f40c6c3397596c81147fae4a6a51bfd517643d2..66ab0911279f8b6e4718c99009e5194bef62e57d 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -646,7 +646,8 @@ public abstract class BlockBase { +@@ -647,7 +647,8 @@ public abstract class BlockBase { EnumDirection enumdirection = aenumdirection[l]; blockposition_mutableblockposition.a((BaseBlockPosition) blockposition, enumdirection); diff --git a/patches/Origami/patches/server/0001-Origami-Server-Config.patch b/patches/Origami/patches/server/0001-Origami-Server-Config.patch index 0d272175..4447d71a 100644 --- a/patches/Origami/patches/server/0001-Origami-Server-Config.patch +++ b/patches/Origami/patches/server/0001-Origami-Server-Config.patch @@ -170,7 +170,7 @@ index d57292e524cad6306c99c1cf6c5790fe1d07d815..298b0dfc67906a96d61b4d40919d3363 Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index a471a3a4191872dae5da7e4f7b41de4491040d5d..655d45b9c664baee77f356d315baacd40209280f 100644 +index 326548230af7f64aabc8cdd1a1c804e734c9e0e0..17d0d0ec4e22ed8b344a2208925a2e9cba5dd58c 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -156,6 +156,14 @@ public class Main { @@ -188,7 +188,7 @@ index a471a3a4191872dae5da7e4f7b41de4491040d5d..655d45b9c664baee77f356d315baacd4 // Paper start acceptsAll(asList("server-name"), "Name of the server") .withRequiredArg() -@@ -289,6 +297,7 @@ public class Main { +@@ -288,6 +296,7 @@ public class Main { } // Paper end System.setProperty( "library.jansi.version", "Paper" ); // Paper - set meaningless jansi version to prevent git builds from crashing on Windows diff --git a/patches/Origami/patches/server/0008-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch b/patches/Origami/patches/server/0008-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch index 1259151c..587aef0d 100644 --- a/patches/Origami/patches/server/0008-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch +++ b/patches/Origami/patches/server/0008-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't wake up entities when damage event is cancelled diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 1d319ad82179ae261738d6e70aac3bbbd3aecae7..a25280812056863fdb4d2fbd97e1eb0913f1bbe0 100644 +index 7dbfd2dca4d99fcafc3a2fcd83b39f5d52c24f1c..254df060dcb7ebef59befa708a694fd7502fc063 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -1214,9 +1214,12 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0001-Multithreaded-entity-tracking.patch b/patches/Purpur/patches/server/0001-Multithreaded-entity-tracking.patch index 06a5e397..073a860f 100644 --- a/patches/Purpur/patches/server/0001-Multithreaded-entity-tracking.patch +++ b/patches/Purpur/patches/server/0001-Multithreaded-entity-tracking.patch @@ -42,14 +42,13 @@ index be408aebbccbda46e8aa82ef337574137cfa0096..739839314fd8a88b5fca8b9678e1df07 private final boolean threadRestricted; diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java -index a77e628518920e84b03a8a00e1308a9a53a00896..9f8d2528a9482cb562c610eecd21204d422da47a 100644 +index a77e628518920e84b03a8a00e1308a9a53a00896..5a20ad857b7c550281000e8d94dac78d72591f31 100644 --- a/src/main/java/gg/airplane/AirplaneConfig.java +++ b/src/main/java/gg/airplane/AirplaneConfig.java -@@ -96,4 +96,18 @@ public class AirplaneConfig { +@@ -96,4 +96,17 @@ public class AirplaneConfig { } -+ + public static boolean multithreadedEntityTracker = false; + public static boolean entityTrackerAsyncPackets = false; + @@ -211,7 +210,7 @@ index 207a9c3928aad7c6e89a120b54d87e003ebd232c..424cd048f905cd0ed3f7a4545a26ffde public ChunkProviderServer(WorldServer worldserver, Convertable.ConversionSession convertable_conversionsession, DataFixer datafixer, DefinedStructureManager definedstructuremanager, Executor executor, ChunkGenerator chunkgenerator, int i, boolean flag, WorldLoadListener worldloadlistener, Supplier supplier) { diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 59989db6dcf96a8ab5a75775bb588c31cec3418a..534c7266fe9d6f60b74a71e5e61ed248e515dffd 100644 +index 62b95dcba8606330fbb3239e74c5eaf8baa3c51d..fd6dbbf619b828c4ef3d00f8dc30d3893007db7b 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -182,7 +182,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -224,7 +223,7 @@ index 59989db6dcf96a8ab5a75775bb588c31cec3418a..534c7266fe9d6f60b74a71e5e61ed248 private final ServerStatisticManager serverStatisticManager; private float lastHealthScored = Float.MIN_VALUE; diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49a6ea0a84 100644 +index 67ca28463f5add7c18f7f16b918c3f36f8feeeda..37e64e24ca3a90370cdf12e5ff9cd1fceede796b 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java @@ -75,6 +75,10 @@ public class EntityTrackerEntry { @@ -247,7 +246,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49 List list = this.tracker.passengers; // Paper - do not copy list if (!list.equals(this.p)) { -@@ -117,6 +121,8 @@ public class EntityTrackerEntry { +@@ -116,6 +120,8 @@ public class EntityTrackerEntry { ItemStack itemstack = entityitemframe.getItem(); if (this.tickCounter % 10 == 0 && itemstack.getItem() instanceof ItemWorldMap) { // CraftBukkit - Moved this.tickCounter % 10 logic here so item frames do not enter the other blocks @@ -256,7 +255,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49 WorldMap worldmap = ItemWorldMap.getSavedMap(itemstack, this.b); Iterator iterator = this.trackedPlayers.iterator(); // CraftBukkit -@@ -130,6 +136,8 @@ public class EntityTrackerEntry { +@@ -129,6 +135,8 @@ public class EntityTrackerEntry { entityplayer.playerConnection.sendPacket(packet); } } @@ -265,7 +264,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49 } this.c(); -@@ -264,18 +272,25 @@ public class EntityTrackerEntry { +@@ -263,18 +271,25 @@ public class EntityTrackerEntry { // CraftBukkit start - Create PlayerVelocity event boolean cancelled = false; @@ -295,7 +294,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49 } if (!cancelled) { -@@ -359,7 +374,9 @@ public class EntityTrackerEntry { +@@ -358,7 +373,9 @@ public class EntityTrackerEntry { if (!list.isEmpty()) { consumer.accept(new PacketPlayOutEntityEquipment(this.tracker.getId(), list)); } @@ -305,7 +304,7 @@ index a1512ee8422fa39a95e4f19c86fe71b77af54ca0..c830b257054b7f8153aa9225c1f61f49 } // CraftBukkit start - Fix for nonsensical head yaw -@@ -437,6 +454,10 @@ public class EntityTrackerEntry { +@@ -436,6 +453,10 @@ public class EntityTrackerEntry { // Paper end private void broadcastIncludingSelf(Packet packet) { diff --git a/patches/Purpur/patches/server/0002-Rebrand.patch b/patches/Purpur/patches/server/0002-Rebrand.patch index 6d373dd5..a27950fb 100644 --- a/patches/Purpur/patches/server/0002-Rebrand.patch +++ b/patches/Purpur/patches/server/0002-Rebrand.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Rebrand diff --git a/pom.xml b/pom.xml -index 988a4464b1c84f7aa973269f1c109fb49b1b4d4b..9d9ea5cff8a07c445837de74b3f887316cd79772 100644 +index 8a73569a4927e046940e5c12ad75ab071ea8aa91..cea712b94bb32ccda2895670859839d660bd0748 100644 --- a/pom.xml +++ b/pom.xml -@@ -27,8 +27,10 @@ +@@ -39,8 +39,10 @@ @@ -21,19 +21,22 @@ index 988a4464b1c84f7aa973269f1c109fb49b1b4d4b..9d9ea5cff8a07c445837de74b3f88731 ${project.version} compile -@@ -181,6 +183,11 @@ - jitpack.io - https://jitpack.io +@@ -190,6 +192,14 @@ + + ++ + + + purpur-snapshots + https://repo.pl3x.net/ + - - ++ ++ -@@ -360,8 +367,15 @@ + + tuinity-${minecraft.version} +@@ -369,8 +379,15 @@ org.eclipse.jdt ecj diff --git a/patches/Purpur/patches/server/0003-Purpur-config-files.patch b/patches/Purpur/patches/server/0003-Purpur-config-files.patch index 6d56493f..4396f11c 100644 --- a/patches/Purpur/patches/server/0003-Purpur-config-files.patch +++ b/patches/Purpur/patches/server/0003-Purpur-config-files.patch @@ -404,7 +404,7 @@ index f9913d7bd66935f975b756f31e26153ec160b3b1..3e0b92259ad00541a8da595a918275c1 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 2774abda3dd1390ae904bf2b177bdd0f11968f40..d28088d510a4a40f3948f224a40a63de4645fa42 100644 +index 145748b5ca095cd555fd1f085a596bf0f58fea13..adf182b651ba8c7105483a4b18d1adfea37f91b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -148,6 +148,14 @@ public class Main { diff --git a/patches/Purpur/patches/server/0008-AFK-API.patch b/patches/Purpur/patches/server/0008-AFK-API.patch index b6fb074c..ed411d74 100644 --- a/patches/Purpur/patches/server/0008-AFK-API.patch +++ b/patches/Purpur/patches/server/0008-AFK-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 534c7266fe9d6f60b74a71e5e61ed248e515dffd..f30dcbd26ed56ba8f1a99260722a0b395c220954 100644 +index fd6dbbf619b828c4ef3d00f8dc30d3893007db7b..7e388dcca2d4e78b49d5fc5fce0b962e74839fa3 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -2070,8 +2070,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -64,10 +64,10 @@ index 534c7266fe9d6f60b74a71e5e61ed248e515dffd..f30dcbd26ed56ba8f1a99260722a0b39 return this.serverStatisticManager; } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 81b0ced87adbeffc7fd2343910735cd0f4c1bf13..68e5115733cfefbf01e3ab4fa9dc5ae064e3de81 100644 +index 10dcb8066493ddb2895e60f5d8d6f241c5f474fa..368aadca86f3775eabe8cf7ec76b7305a6871bd5 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1000,7 +1000,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1002,7 +1002,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit end if (this.everyoneSleeping && this.players.stream().noneMatch((entityplayer) -> { @@ -76,7 +76,7 @@ index 81b0ced87adbeffc7fd2343910735cd0f4c1bf13..68e5115733cfefbf01e3ab4fa9dc5ae0 })) { // CraftBukkit start long l = this.worldData.getDayTime() + 24000L; -@@ -1346,7 +1346,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1348,7 +1348,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { while (iterator.hasNext()) { EntityPlayer entityplayer = (EntityPlayer) iterator.next(); @@ -86,7 +86,7 @@ index 81b0ced87adbeffc7fd2343910735cd0f4c1bf13..68e5115733cfefbf01e3ab4fa9dc5ae0 } else if (entityplayer.isSleeping()) { ++j; diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index a5871955d487dbf6552d20e5559f2cb1427aeb3e..9603503f8959379c3b6e30b22946fa2b6b100504 100644 +index 83ad913e46f44aabb41b7e441cba2ef2f7bcbc46..400d682a3b314705501cd652593317e8fe096db7 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -397,6 +397,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -102,7 +102,7 @@ index a5871955d487dbf6552d20e5559f2cb1427aeb3e..9603503f8959379c3b6e30b22946fa2b this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854 this.disconnect(new ChatMessage("multiplayer.disconnect.idling")); } -@@ -666,6 +672,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -672,6 +678,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -111,7 +111,7 @@ index a5871955d487dbf6552d20e5559f2cb1427aeb3e..9603503f8959379c3b6e30b22946fa2b // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1402,7 +1410,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1414,7 +1422,7 @@ public class PlayerConnection implements PacketListenerPlayIn { if (!this.player.H() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative() && this.player.playerInteractManager.getGameMode() != EnumGamemode.SPECTATOR) { // Spigot flag1 = true; // Tuinity - diff on change, this should be moved wrongly @@ -120,7 +120,7 @@ index a5871955d487dbf6552d20e5559f2cb1427aeb3e..9603503f8959379c3b6e30b22946fa2b } this.player.setLocation(d4, d5, d6, f, f1); -@@ -1452,6 +1460,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1464,6 +1472,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); diff --git a/patches/Purpur/patches/server/0011-LivingEntity-safeFallDistance.patch b/patches/Purpur/patches/server/0011-LivingEntity-safeFallDistance.patch index 68ca7ee1..7aaf33d9 100644 --- a/patches/Purpur/patches/server/0011-LivingEntity-safeFallDistance.patch +++ b/patches/Purpur/patches/server/0011-LivingEntity-safeFallDistance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity safeFallDistance diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 1a7866bed9cb7f0431454d3af4733de05c0cba78..30aabde3d6703eefcb6d57bab43666b97197ba1f 100644 +index 5c983a441cd2a06eae6e79bc07ba5440d294574b..b987cee913bf909fa0daa6280376838e9429fe5d 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -228,6 +228,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0016-Player-invulnerabilities.patch b/patches/Purpur/patches/server/0016-Player-invulnerabilities.patch index e33500ef..e69b0154 100644 --- a/patches/Purpur/patches/server/0016-Player-invulnerabilities.patch +++ b/patches/Purpur/patches/server/0016-Player-invulnerabilities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index f30dcbd26ed56ba8f1a99260722a0b395c220954..7cd1ae92768164b657af9febe9b4feb7fd02f55a 100644 +index 7e388dcca2d4e78b49d5fc5fce0b962e74839fa3..e875671ce985199bc37de131280935a859253954 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -284,6 +284,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -67,10 +67,10 @@ index f30dcbd26ed56ba8f1a99260722a0b395c220954..7cd1ae92768164b657af9febe9b4feb7 public Scoreboard getScoreboard() { return getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 9603503f8959379c3b6e30b22946fa2b6b100504..016e4c92545ee6effe0311ad7651255cb88bd9f2 100644 +index 400d682a3b314705501cd652593317e8fe096db7..f1ebb59f328bffa80a5b9b6504535e711c1d5c9b 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1882,6 +1882,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1894,6 +1894,7 @@ public class PlayerConnection implements PacketListenerPlayIn { PlayerConnectionUtils.ensureMainThread(packetplayinresourcepackstatus, this, this.player.getWorldServer()); // Paper start PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packetplayinresourcepackstatus.status.ordinal()]; @@ -79,7 +79,7 @@ index 9603503f8959379c3b6e30b22946fa2b6b100504..016e4c92545ee6effe0311ad7651255c this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus)); // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 499b516330f3f3a48fb64802f2e8c1b7c9684f4d..25983bce99fa3c2b5a571499ced145be0934091f 100644 +index 0b5cf23932c3c626d8805d4db97d2bbab63634cf..a285d0594e61190a751a96f22afeb12d2dcce3fe 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1007,6 +1007,8 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0019-Alternative-Keepalive-Handling.patch b/patches/Purpur/patches/server/0019-Alternative-Keepalive-Handling.patch index 0922da58..30aeb1df 100644 --- a/patches/Purpur/patches/server/0019-Alternative-Keepalive-Handling.patch +++ b/patches/Purpur/patches/server/0019-Alternative-Keepalive-Handling.patch @@ -17,7 +17,7 @@ index b4c37287362907b8507d156b978ba5b9d961bb7b..9e6e6636539702507abb78515e002819 return this.a; } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 016e4c92545ee6effe0311ad7651255cb88bd9f2..5173affbc42ca00305557b53f606f1d9eb78d468 100644 +index f1ebb59f328bffa80a5b9b6504535e711c1d5c9b..ac36ca9251e3acb663c62ad7af05bfaf2fd68f5c 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -231,6 +231,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -50,7 +50,7 @@ index 016e4c92545ee6effe0311ad7651255cb88bd9f2..5173affbc42ca00305557b53f606f1d9 if (this.isPendingPing()) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info -@@ -3053,6 +3069,16 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -3065,6 +3081,16 @@ public class PlayerConnection implements PacketListenerPlayIn { @Override public void a(PacketPlayInKeepAlive packetplayinkeepalive) { diff --git a/patches/Purpur/patches/server/0024-Disable-outdated-build-check.patch b/patches/Purpur/patches/server/0024-Disable-outdated-build-check.patch index 5cf42bd3..f6fccf8e 100644 --- a/patches/Purpur/patches/server/0024-Disable-outdated-build-check.patch +++ b/patches/Purpur/patches/server/0024-Disable-outdated-build-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable outdated build check diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index d28088d510a4a40f3948f224a40a63de4645fa42..a471a3a4191872dae5da7e4f7b41de4491040d5d 100644 +index adf182b651ba8c7105483a4b18d1adfea37f91b9..326548230af7f64aabc8cdd1a1c804e734c9e0e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -261,7 +261,7 @@ public class Main { +@@ -260,7 +260,7 @@ public class Main { System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper } diff --git a/patches/Purpur/patches/server/0025-Giants-AI-settings.patch b/patches/Purpur/patches/server/0025-Giants-AI-settings.patch index 84798f01..e2dc631e 100644 --- a/patches/Purpur/patches/server/0025-Giants-AI-settings.patch +++ b/patches/Purpur/patches/server/0025-Giants-AI-settings.patch @@ -38,7 +38,7 @@ index f4440a5c4aedb1d7d303517f86a07c856dd1309b..7443fe924486404931c11793acc67e2f float f = difficultydamagescaler.d(); diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 30aabde3d6703eefcb6d57bab43666b97197ba1f..ffc5ca763a22a1c4d06ffdb72c30482c13ec0a7b 100644 +index b987cee913bf909fa0daa6280376838e9429fe5d..7720cf9dcbc5a9680c68f47aef08ff1c3b154022 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -261,6 +261,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0027-Zombie-horse-naturally-spawn.patch b/patches/Purpur/patches/server/0027-Zombie-horse-naturally-spawn.patch index b82a95ae..1cd2643d 100644 --- a/patches/Purpur/patches/server/0027-Zombie-horse-naturally-spawn.patch +++ b/patches/Purpur/patches/server/0027-Zombie-horse-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 68e5115733cfefbf01e3ab4fa9dc5ae064e3de81..bd6db4fff4556a934b7956c9810b75ab294d094b 100644 +index 368aadca86f3775eabe8cf7ec76b7305a6871bd5..446dc23e9b16314b80767ce12b82f993f48824f6 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -96,6 +96,7 @@ import net.minecraft.world.entity.ai.village.poi.VillagePlace; @@ -16,7 +16,7 @@ index 68e5115733cfefbf01e3ab4fa9dc5ae064e3de81..bd6db4fff4556a934b7956c9810b75ab import net.minecraft.world.entity.animal.horse.EntityHorseSkeleton; import net.minecraft.world.entity.boss.EntityComplexPart; import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon; -@@ -1220,12 +1221,18 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1222,12 +1223,18 @@ public class WorldServer extends World implements GeneratorAccessSeed { boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper if (flag1) { diff --git a/patches/Purpur/patches/server/0028-Charged-creeper-naturally-spawn.patch b/patches/Purpur/patches/server/0028-Charged-creeper-naturally-spawn.patch index 3f2e7f99..306f6851 100644 --- a/patches/Purpur/patches/server/0028-Charged-creeper-naturally-spawn.patch +++ b/patches/Purpur/patches/server/0028-Charged-creeper-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Charged creeper naturally spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index 9c8abb18c0ed850939b6691396f5d551e13c7af9..1986f6a672b97c1f0366bdb76e185815b8ca3bd6 100644 +index b47f71ca1f1c8bbd1a521836d9cb5d676a33ec76..63a6b1820f60db9eea49a3a589dd50ad25a3c0a2 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -9,6 +9,7 @@ import net.minecraft.network.syncher.DataWatcherRegistry; diff --git a/patches/Purpur/patches/server/0032-Dont-send-useless-entity-packets.patch b/patches/Purpur/patches/server/0032-Dont-send-useless-entity-packets.patch index 8f94d009..127e472b 100644 --- a/patches/Purpur/patches/server/0032-Dont-send-useless-entity-packets.patch +++ b/patches/Purpur/patches/server/0032-Dont-send-useless-entity-packets.patch @@ -26,10 +26,10 @@ index 0eed10a6c4e0c7245f219d19ed1e2e5c94364db9..2b54a5f3347f788b751892105f888663 protected boolean h; protected boolean i; diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index c830b257054b7f8153aa9225c1f61f49a6ea0a84..3a66a34db2b8ac612431131cea80e57ee72de05f 100644 +index 37e64e24ca3a90370cdf12e5ff9cd1fceede796b..f63ec5fa5a1cb34f4809a06a29d01603efb178f1 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -@@ -209,6 +209,7 @@ public class EntityTrackerEntry { +@@ -208,6 +208,7 @@ public class EntityTrackerEntry { this.o = 0; packet1 = new PacketPlayOutEntityTeleport(this.tracker); } @@ -37,7 +37,7 @@ index c830b257054b7f8153aa9225c1f61f49a6ea0a84..3a66a34db2b8ac612431131cea80e57e } if ((this.e || this.tracker.impulse || this.tracker instanceof EntityLiving && ((EntityLiving) this.tracker).isGliding()) && this.tickCounter > 0) { -@@ -302,6 +303,22 @@ public class EntityTrackerEntry { +@@ -301,6 +302,22 @@ public class EntityTrackerEntry { } diff --git a/patches/Purpur/patches/server/0039-Cows-eat-mushrooms.patch b/patches/Purpur/patches/server/0039-Cows-eat-mushrooms.patch index 32aa6e24..b0b68fe0 100644 --- a/patches/Purpur/patches/server/0039-Cows-eat-mushrooms.patch +++ b/patches/Purpur/patches/server/0039-Cows-eat-mushrooms.patch @@ -17,7 +17,7 @@ index b7c72eaf5715a30bb8f82891f9830f9f62ec03c9..c8071e2909c03bd8eafb92fbf8fd8701 this.setPositionRotation(entity.locX(), entity.locY(), entity.locZ(), entity.yaw, entity.pitch); } diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index ffc5ca763a22a1c4d06ffdb72c30482c13ec0a7b..1902b706345ff0031aaa8babde8cabffced99b78 100644 +index 7720cf9dcbc5a9680c68f47aef08ff1c3b154022..ee42f3d97c3453bacfe0be40ee99f08649d44acf 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -176,7 +176,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0045-Signs-allow-color-codes.patch b/patches/Purpur/patches/server/0045-Signs-allow-color-codes.patch index eda9b8ee..9d4cc49d 100644 --- a/patches/Purpur/patches/server/0045-Signs-allow-color-codes.patch +++ b/patches/Purpur/patches/server/0045-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 7cd1ae92768164b657af9febe9b4feb7fd02f55a..fe583fbc58309564d35d4cdd56fafc4de8ba31c8 100644 +index e875671ce985199bc37de131280935a859253954..ba71636527f173dfc5ddae9ef0f7c73d0423d9b3 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1579,6 +1579,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -17,10 +17,10 @@ index 7cd1ae92768164b657af9febe9b4feb7fd02f55a..fe583fbc58309564d35d4cdd56fafc4d this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition())); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 5173affbc42ca00305557b53f606f1d9eb78d468..5f91259b305a48fd09a156799808c25561788882 100644 +index ac36ca9251e3acb663c62ad7af05bfaf2fd68f5c..f45bbf7a4ab4d841a12270c1399fb09538b9fe90 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -3047,6 +3047,15 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -3059,6 +3059,15 @@ public class PlayerConnection implements PacketListenerPlayIn { } } // Paper end diff --git a/patches/Purpur/patches/server/0047-Controllable-Minecarts.patch b/patches/Purpur/patches/server/0047-Controllable-Minecarts.patch index 26e91dce..c4585324 100644 --- a/patches/Purpur/patches/server/0047-Controllable-Minecarts.patch +++ b/patches/Purpur/patches/server/0047-Controllable-Minecarts.patch @@ -30,7 +30,7 @@ index 8edc279e7a3fdfb7e10718f1deee34b7e3fb2f28..a01b69c43acf4beb65c8b7a8a800c441 super(i, j, k); } diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index fe583fbc58309564d35d4cdd56fafc4de8ba31c8..4a2ea4c83107e957bda69604ca0ae98c504cf962 100644 +index ba71636527f173dfc5ddae9ef0f7c73d0423d9b3..c2e987808ae5ccb23cc7bcc5221faea11153bc7f 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -106,6 +106,7 @@ import net.minecraft.world.entity.monster.EntityMonster; @@ -50,7 +50,7 @@ index fe583fbc58309564d35d4cdd56fafc4de8ba31c8..4a2ea4c83107e957bda69604ca0ae98c if (!flag && isSpawnInvulnerable() && damagesource != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 1902b706345ff0031aaa8babde8cabffced99b78..c3acf0de92f1dbbcfbe7a9673c843107a6bd00b7 100644 +index ee42f3d97c3453bacfe0be40ee99f08649d44acf..09c00dae1d25878a7d55bdc2498b7d6e325dc45a 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -194,9 +194,9 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch b/patches/Purpur/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch index a0f21760..0ba069d6 100644 --- a/patches/Purpur/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/Purpur/patches/server/0048-Disable-loot-drops-on-death-by-cramming.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Disable loot drops on death by cramming diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index c3acf0de92f1dbbcfbe7a9673c843107a6bd00b7..1602c00e04cccdee4e9eb4f4512145e8b1aeaf57 100644 +index 09c00dae1d25878a7d55bdc2498b7d6e325dc45a..f338c3fc638d76eb6850573517c6123584bc7e04 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -1598,8 +1598,10 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0049-Players-should-not-cram-to-death.patch b/patches/Purpur/patches/server/0049-Players-should-not-cram-to-death.patch index 0c25fcd8..e0598478 100644 --- a/patches/Purpur/patches/server/0049-Players-should-not-cram-to-death.patch +++ b/patches/Purpur/patches/server/0049-Players-should-not-cram-to-death.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Players should not cram to death diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 4a2ea4c83107e957bda69604ca0ae98c504cf962..e129480fa1045fbeaafa97045d53696b44952bcf 100644 +index c2e987808ae5ccb23cc7bcc5221faea11153bc7f..97f82ac9fb8f91aea11660ad6d7284faed8e9434 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1557,7 +1557,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/Purpur/patches/server/0052-Fix-the-dead-lagging-the-server.patch b/patches/Purpur/patches/server/0052-Fix-the-dead-lagging-the-server.patch index f24ce7d2..732ea64f 100644 --- a/patches/Purpur/patches/server/0052-Fix-the-dead-lagging-the-server.patch +++ b/patches/Purpur/patches/server/0052-Fix-the-dead-lagging-the-server.patch @@ -17,7 +17,7 @@ index c8071e2909c03bd8eafb92fbf8fd8701642df1f9..7c9fc120d2b58ca969b8a0ff9619e96f public void f(double d0, double d1, double d2) { diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 1602c00e04cccdee4e9eb4f4512145e8b1aeaf57..c540886511261303d2266ac97353e1b98c1f9601 100644 +index f338c3fc638d76eb6850573517c6123584bc7e04..7d1b5c992521ae1dae94d3e658d73491387e1d98 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2597,7 +2597,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0054-Add-permission-for-F3-N-debug.patch b/patches/Purpur/patches/server/0054-Add-permission-for-F3-N-debug.patch index ef42b925..29c49e6d 100644 --- a/patches/Purpur/patches/server/0054-Add-permission-for-F3-N-debug.patch +++ b/patches/Purpur/patches/server/0054-Add-permission-for-F3-N-debug.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 25983bce99fa3c2b5a571499ced145be0934091f..aceb83c2f60ee90b8e0369a076b7fa3093dfa821 100644 +index a285d0594e61190a751a96f22afeb12d2dcce3fe..3a46a673349de9d9d725516a0fcdb3ebb9b372b3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1166,6 +1166,7 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0058-Add-enderman-and-creeper-griefing-controls.patch b/patches/Purpur/patches/server/0058-Add-enderman-and-creeper-griefing-controls.patch index ef0b1893..6466333c 100644 --- a/patches/Purpur/patches/server/0058-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/Purpur/patches/server/0058-Add-enderman-and-creeper-griefing-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add enderman and creeper griefing controls diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index 1986f6a672b97c1f0366bdb76e185815b8ca3bd6..f1ff9a323eaa636b21e64860d2a83a2ba6c164ea 100644 +index 63a6b1820f60db9eea49a3a589dd50ad25a3c0a2..09df2bd3b523072de0e9858e6e707e3721474422 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -255,7 +255,7 @@ public class EntityCreeper extends EntityMonster { diff --git a/patches/Purpur/patches/server/0074-Implement-elytra-settings.patch b/patches/Purpur/patches/server/0074-Implement-elytra-settings.patch index a50fa3a0..b41d4cf9 100644 --- a/patches/Purpur/patches/server/0074-Implement-elytra-settings.patch +++ b/patches/Purpur/patches/server/0074-Implement-elytra-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index c540886511261303d2266ac97353e1b98c1f9601..5a060b98fe9f3edc199cd520a636505c653556e9 100644 +index 7d1b5c992521ae1dae94d3e658d73491387e1d98..35936f4651484c495a43529638d79b5df65b82ee 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2955,7 +2955,16 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0075-Item-entity-immunities.patch b/patches/Purpur/patches/server/0075-Item-entity-immunities.patch index 9f5a5a24..285d5dc6 100644 --- a/patches/Purpur/patches/server/0075-Item-entity-immunities.patch +++ b/patches/Purpur/patches/server/0075-Item-entity-immunities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index 3a66a34db2b8ac612431131cea80e57ee72de05f..70a1ff235690a5990f94bd9cf97d670b2f4c2aea 100644 +index f63ec5fa5a1cb34f4809a06a29d01603efb178f1..b773480baef218d0aab2f524e7e305c18443517d 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java @@ -31,6 +31,7 @@ import net.minecraft.world.entity.EntityLiving; @@ -25,7 +25,7 @@ index 3a66a34db2b8ac612431131cea80e57ee72de05f..70a1ff235690a5990f94bd9cf97d670b // Paper start private java.util.Map trackedPlayerMap = null; -@@ -143,6 +144,15 @@ public class EntityTrackerEntry { +@@ -142,6 +143,15 @@ public class EntityTrackerEntry { this.c(); } diff --git a/patches/Purpur/patches/server/0077-Configurable-jockey-options.patch b/patches/Purpur/patches/server/0077-Configurable-jockey-options.patch index bc0f3d15..a129aada 100644 --- a/patches/Purpur/patches/server/0077-Configurable-jockey-options.patch +++ b/patches/Purpur/patches/server/0077-Configurable-jockey-options.patch @@ -165,7 +165,7 @@ index ce08413134de6101420ccb957da925ea1e3b0884..5d3e5873f19aaf8389eb5525693b9378 return b(entitytypes, worldaccess, enummobspawn, blockposition, random) && (enummobspawn == EnumMobSpawn.SPAWNER || worldaccess.e(blockposition)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java -index c03f4655dcca3d9635a7e13244b7977425a3f291..167ea96ec4072a9415a2ae9d7a0db118bfb94e19 100644 +index f341759f6110b51c856de09248d2f523c58aa712..99d0932e5352589cfbcc48a5e789651d0d77edde 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java @@ -70,6 +70,23 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo diff --git a/patches/Purpur/patches/server/0083-Allow-color-codes-in-books.patch b/patches/Purpur/patches/server/0083-Allow-color-codes-in-books.patch index 9e4f60c9..bf4cf886 100644 --- a/patches/Purpur/patches/server/0083-Allow-color-codes-in-books.patch +++ b/patches/Purpur/patches/server/0083-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 5f91259b305a48fd09a156799808c25561788882..72dda95171cf7d4632256b4d661338209d2adfb5 100644 +index f45bbf7a4ab4d841a12270c1399fb09538b9fe90..38273c73610b23ba75db658763cbb2e4c4871d58 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1203,7 +1203,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1209,7 +1209,8 @@ public class PlayerConnection implements PacketListenerPlayIn { if (itemstack.getItem() == Items.WRITABLE_BOOK) { NBTTagList nbttaglist = new NBTTagList(); @@ -17,8 +17,8 @@ index 5f91259b305a48fd09a156799808c25561788882..72dda95171cf7d4632256b4d66133820 + list.stream().map(s -> s = color(s, hasPerm, false)).map(NBTTagString::a).forEach(nbttaglist::add); // Purpur - edit book ItemStack old = itemstack.cloneItemStack(); // CraftBukkit itemstack.a("pages", (NBTBase) nbttaglist); - CraftEventFactory.handleEditBookEvent(player, i, old, itemstack); // CraftBukkit -@@ -1221,13 +1222,14 @@ public class PlayerConnection implements PacketListenerPlayIn { + this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) +@@ -1227,13 +1228,14 @@ public class PlayerConnection implements PacketListenerPlayIn { itemstack1.setTag(nbttagcompound.clone()); } @@ -35,7 +35,7 @@ index 5f91259b305a48fd09a156799808c25561788882..72dda95171cf7d4632256b4d66133820 ChatComponentText chatcomponenttext = new ChatComponentText(s1); String s2 = IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) chatcomponenttext); -@@ -1239,6 +1241,16 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1245,6 +1247,16 @@ public class PlayerConnection implements PacketListenerPlayIn { } } diff --git a/patches/Purpur/patches/server/0084-Entity-lifespan.patch b/patches/Purpur/patches/server/0084-Entity-lifespan.patch index 8a5f3b58..6a1936a7 100644 --- a/patches/Purpur/patches/server/0084-Entity-lifespan.patch +++ b/patches/Purpur/patches/server/0084-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 72dda95171cf7d4632256b4d661338209d2adfb5..c5549b74a3875c0fa1bfe8f270b25b59317073a3 100644 +index 38273c73610b23ba75db658763cbb2e4c4871d58..d30a9ef98cbe214c0258e7d5e8527ff8fd956ddd 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -2443,6 +2443,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2455,6 +2455,7 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean triggerLeashUpdate = itemInHand != null && itemInHand.getItem() == Items.LEAD && entity instanceof EntityInsentient; Item origItem = this.player.inventory.getItemInHand() == null ? null : this.player.inventory.getItemInHand().getItem(); PlayerInteractEntityEvent event; diff --git a/patches/Purpur/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/Purpur/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 0b3facab..40bdba8f 100644 --- a/patches/Purpur/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/Purpur/patches/server/0085-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index e129480fa1045fbeaafa97045d53696b44952bcf..9de660f0c679f101512bddf7c6582ca6cd18ca5b 100644 +index 97f82ac9fb8f91aea11660ad6d7284faed8e9434..8e76c11e6bec5357322ea906af9e30f71e5718be 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -2556,4 +2556,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -36,7 +36,7 @@ index e129480fa1045fbeaafa97045d53696b44952bcf..9de660f0c679f101512bddf7c6582ca6 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 5a060b98fe9f3edc199cd520a636505c653556e9..e453502c34f717797c4b67a7149d2e0da1b1232d 100644 +index 35936f4651484c495a43529638d79b5df65b82ee..a2073fd6fc5c2a5fd2835445019c7ecf86c5eb47 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -45,6 +45,7 @@ import net.minecraft.network.syncher.DataWatcher; diff --git a/patches/Purpur/patches/server/0092-Totems-work-in-inventory.patch b/patches/Purpur/patches/server/0092-Totems-work-in-inventory.patch index 83c0864b..ae6bc72d 100644 --- a/patches/Purpur/patches/server/0092-Totems-work-in-inventory.patch +++ b/patches/Purpur/patches/server/0092-Totems-work-in-inventory.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index e453502c34f717797c4b67a7149d2e0da1b1232d..df9ab64ed3800dfdf9e175fc95a8d3d7dba00c51 100644 +index a2073fd6fc5c2a5fd2835445019c7ecf86c5eb47..451a28b1950bad61de7181a2fb89549063d8e2bf 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -1426,6 +1426,19 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0098-Add-no-random-tick-block-list.patch b/patches/Purpur/patches/server/0098-Add-no-random-tick-block-list.patch index f12a8de7..dbe5450d 100644 --- a/patches/Purpur/patches/server/0098-Add-no-random-tick-block-list.patch +++ b/patches/Purpur/patches/server/0098-Add-no-random-tick-block-list.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add no-random-tick block list diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index bd6db4fff4556a934b7956c9810b75ab294d094b..36eec5cfd66f1854ec2c5bebaaa900debeb54214 100644 +index 446dc23e9b16314b80767ce12b82f993f48824f6..f63c096218b7d984b1930667766021324ac72345 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -532,14 +532,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -26,10 +26,10 @@ index bd6db4fff4556a934b7956c9810b75ab294d094b..36eec5cfd66f1854ec2c5bebaaa900de this.nextTickListFluid = new TickListServer<>(this, (fluidtype) -> { return fluidtype == null || fluidtype == FluidTypes.EMPTY; diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 0b852fa247c65cb1e889ad4e55886e256f89a763..aa78176ddd9eced179ceb8e53a1884172490f059 100644 +index 6124b56d935386784371422960a07d518f848cf3..e5f66cdf95b6073545efc8d1527b0a5e2741f79d 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -670,10 +670,12 @@ public abstract class BlockBase { +@@ -671,10 +671,12 @@ public abstract class BlockBase { } public void a(WorldServer worldserver, BlockPosition blockposition, Random random) { diff --git a/patches/Purpur/patches/server/0101-Stop-squids-floating-on-top-of-water.patch b/patches/Purpur/patches/server/0101-Stop-squids-floating-on-top-of-water.patch index 5d40a882..d109dd8a 100644 --- a/patches/Purpur/patches/server/0101-Stop-squids-floating-on-top-of-water.patch +++ b/patches/Purpur/patches/server/0101-Stop-squids-floating-on-top-of-water.patch @@ -24,10 +24,10 @@ index 5ac6b7759cf43dbbad1bcf74d5d86efd69883cf5..240f30f6ca6007ba8e7de1c3e033b2a8 int j = MathHelper.f(axisalignedbb.maxX); int k = MathHelper.floor(axisalignedbb.minY); diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index 92ff03f8e8286f710fd5e63b4d103e489787d453..081929990a8208f643d298a885acc4ddfa401bfb 100644 +index 1f5f3e0d209426b97e32b82dd15176b800f85816..e6757b22497c6e274c3999d58671653e931ebe2b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -@@ -26,6 +26,7 @@ import net.minecraft.world.level.GeneratorAccess; +@@ -27,6 +27,7 @@ import net.minecraft.world.level.GeneratorAccess; import net.minecraft.world.level.World; import net.minecraft.world.level.block.state.IBlockData; import net.minecraft.world.level.material.Fluid; @@ -35,7 +35,7 @@ index 92ff03f8e8286f710fd5e63b4d103e489787d453..081929990a8208f643d298a885acc4dd import net.minecraft.world.phys.Vec3D; public class EntitySquid extends EntityWaterAnimal { -@@ -51,6 +52,14 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -52,6 +53,14 @@ public class EntitySquid extends EntityWaterAnimal { this.bu = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; } diff --git a/patches/Purpur/patches/server/0102-Ridables.patch b/patches/Purpur/patches/server/0102-Ridables.patch index fad8f3a8..fe305dcc 100644 --- a/patches/Purpur/patches/server/0102-Ridables.patch +++ b/patches/Purpur/patches/server/0102-Ridables.patch @@ -68,7 +68,7 @@ index 0000000000000000000000000000000000000000..8b66d1215a6eef1302b5ecb46a4b3d50 + } +} diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 9de660f0c679f101512bddf7c6582ca6cd18ca5b..e1a6e4a359eb2aa484d479fde398473c349a63ba 100644 +index 8e76c11e6bec5357322ea906af9e30f71e5718be..86bd39af6e3240b82f5afd6e7c554471f7bbd6ba 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -643,6 +643,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -88,7 +88,7 @@ index 9de660f0c679f101512bddf7c6582ca6cd18ca5b..e1a6e4a359eb2aa484d479fde398473c public void playerTick() { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 36eec5cfd66f1854ec2c5bebaaa900debeb54214..70d400a54507c51a7475ce37d0c045c6ace35a86 100644 +index f63c096218b7d984b1930667766021324ac72345..e4f08e0da995cfe8c8540a167bad246ce131e010 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -216,6 +216,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -100,10 +100,10 @@ index 36eec5cfd66f1854ec2c5bebaaa900debeb54214..70d400a54507c51a7475ce37d0c045c6 return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index c5549b74a3875c0fa1bfe8f270b25b59317073a3..d5c38de84787089466d73dd5400f3276470716be 100644 +index d30a9ef98cbe214c0258e7d5e8527ff8fd956ddd..e39e46cf3cb646dd100b698cbc6d4f9b6896696d 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -2452,6 +2452,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2464,6 +2464,8 @@ public class PlayerConnection implements PacketListenerPlayIn { } this.server.getPluginManager().callEvent(event); @@ -419,7 +419,7 @@ index c9136f1b54ff0620a621b703b4e7487f4a63b01d..8b7f840bb1b24996b40c9bef85f4c1e9 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index df9ab64ed3800dfdf9e175fc95a8d3d7dba00c51..617657ff7f27996ed7d97801dc49c9a39f59a240 100644 +index 451a28b1950bad61de7181a2fb89549063d8e2bf..81c0ccc4f8d0d1cf749cc2929c8d8f3c2c6c9887 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -559,7 +559,7 @@ public abstract class EntityLiving extends Entity { @@ -2296,10 +2296,10 @@ index 44119f52a4f169ffcea53fb69393bfedfd1a62a7..cfcf67e99ae345f77a55771e6a25bdcd } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca18a006e94 100644 +index e6757b22497c6e274c3999d58671653e931ebe2b..a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -@@ -3,6 +3,7 @@ package net.minecraft.world.entity.animal; +@@ -4,6 +4,7 @@ package net.minecraft.world.entity.animal; import java.util.Random; import net.minecraft.core.BlockPosition; import net.minecraft.core.particles.Particles; @@ -2307,7 +2307,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1 import net.minecraft.server.level.WorldServer; import net.minecraft.sounds.SoundEffect; import net.minecraft.sounds.SoundEffects; -@@ -22,6 +23,7 @@ import net.minecraft.world.entity.EnumMoveType; +@@ -23,6 +24,7 @@ import net.minecraft.world.entity.EnumMoveType; import net.minecraft.world.entity.ai.attributes.AttributeProvider; import net.minecraft.world.entity.ai.attributes.GenericAttributes; import net.minecraft.world.entity.ai.goal.PathfinderGoal; @@ -2315,7 +2315,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1 import net.minecraft.world.level.GeneratorAccess; import net.minecraft.world.level.World; import net.minecraft.world.level.block.state.IBlockData; -@@ -53,17 +55,38 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -54,17 +56,38 @@ public class EntitySquid extends EntityWaterAnimal { } // Purpur start @@ -2355,7 +2355,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1 } public static AttributeProvider.Builder m() { -@@ -208,6 +231,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -209,6 +232,7 @@ public class EntitySquid extends EntityWaterAnimal { return blockposition.getY() > generatoraccess.getMinecraftWorld().spigotConfig.squidSpawnRangeMin && blockposition.getY() < maxHeight; // Spigot // Paper } @@ -2363,7 +2363,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1 public void a(float f, float f1, float f2) { this.bw = f; this.bx = f1; -@@ -279,7 +303,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -280,7 +304,7 @@ public class EntitySquid extends EntityWaterAnimal { class PathfinderGoalSquid extends PathfinderGoal { @@ -2372,7 +2372,7 @@ index 081929990a8208f643d298a885acc4ddfa401bfb..10e228a36b213a87e17f26a633adfca1 public PathfinderGoalSquid(EntitySquid entitysquid) { this.b = entitysquid; -@@ -292,6 +316,38 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -293,6 +317,38 @@ public class EntitySquid extends EntityWaterAnimal { @Override public void e() { @@ -3418,7 +3418,7 @@ index 65d0027186f19f10292ea64976ebb93c12b98394..27baf5cde99d8f25b1e7583c30339fcc return EntitySpider.eK().a(GenericAttributes.MAX_HEALTH, 12.0D); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index f1ff9a323eaa636b21e64860d2a83a2ba6c164ea..e29bba9143f027077c1051d61296df219cd45861 100644 +index 09df2bd3b523072de0e9858e6e707e3721474422..2cb9908a5c53528b2e02a1231752adc5ad8354f8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -6,6 +6,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -5176,7 +5176,7 @@ index 5d3e5873f19aaf8389eb5525693b9378ea9f94ee..ad801fc394fbb83cf280ee96f962e7f3 public boolean jockeyOnlyBaby() { return world.purpurConfig.huskJockeyOnlyBaby; diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java -index 167ea96ec4072a9415a2ae9d7a0db118bfb94e19..6b2fd555122ba1af0adae3e479540e0da767a99d 100644 +index 99d0932e5352589cfbcc48a5e789651d0d77edde..b8395c7317494adf36010080931a1c8635ab6cfa 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java @@ -71,6 +71,16 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo @@ -6862,7 +6862,7 @@ index dee4d12a49468d38f077784b219199f0070786f2..c524a0994f1c9ef1d0534403efa4e448 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 926440e846eff2c1aaa262aa2b3975b7dd225332..9a6c4f292940b1cef2f4ef87c2e47d82ba5cb60f 100644 +index 9084aa4b7c0059c995a3d1a89188379b52c9d620..7341b1956123d8e5d45d9041e7319de8ee8b768a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -530,6 +530,18 @@ public class CraftEventFactory { diff --git a/patches/Purpur/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch b/patches/Purpur/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch index 462a0a7f..f3903c79 100644 --- a/patches/Purpur/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/Purpur/patches/server/0104-Crying-obsidian-valid-for-portal-frames.patch @@ -17,10 +17,10 @@ index 5ea059cde9e1a089c2ade12512e4a7abd07c5b8a..97eb81338207c93125bea08225638494 return this == block; } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index aa78176ddd9eced179ceb8e53a1884172490f059..936933ab4c9e78877e1a2fc250721c2158e3810c 100644 +index e5f66cdf95b6073545efc8d1527b0a5e2741f79d..23a3b1b317b6b3e9d812f5a7b09b099b0528c59e 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -740,6 +740,7 @@ public abstract class BlockBase { +@@ -741,6 +741,7 @@ public abstract class BlockBase { return this.getBlock().a(tag) && predicate.test(this); } diff --git a/patches/Purpur/patches/server/0108-Allow-toggling-special-MobSpawners-per-world.patch b/patches/Purpur/patches/server/0108-Allow-toggling-special-MobSpawners-per-world.patch index c550f6e3..bfc50d79 100644 --- a/patches/Purpur/patches/server/0108-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/Purpur/patches/server/0108-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 70d400a54507c51a7475ce37d0c045c6ace35a86..ec70acdffa34f55c64fc2399d710dd6186c37636 100644 +index e4f08e0da995cfe8c8540a167bad246ce131e010..b374460bdb4c4dd0ed3d85380734ae39bc17fdd9 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -92,6 +92,7 @@ import net.minecraft.world.entity.EnumCreatureType; diff --git a/patches/Purpur/patches/server/0114-Flying-squids-Oh-my.patch b/patches/Purpur/patches/server/0114-Flying-squids-Oh-my.patch index 8106603c..a506b39d 100644 --- a/patches/Purpur/patches/server/0114-Flying-squids-Oh-my.patch +++ b/patches/Purpur/patches/server/0114-Flying-squids-Oh-my.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Flying squids! Oh my! diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index 10e228a36b213a87e17f26a633adfca18a006e94..07b1db0e1fff1beffe464a3984716d5d84ea1873 100644 +index a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb..be48e12dd6c9a390bf383129953bcd3d1f818427 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -@@ -80,6 +80,11 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -81,6 +81,11 @@ public class EntitySquid extends EntityWaterAnimal { vector.setX(cos * x - sine * z); vector.setZ(sine * x + cos * z); } @@ -20,7 +20,7 @@ index 10e228a36b213a87e17f26a633adfca18a006e94..07b1db0e1fff1beffe464a3984716d5d // Purpur end @Override -@@ -145,6 +150,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -146,6 +151,7 @@ public class EntitySquid extends EntityWaterAnimal { } if (this.aH()) { @@ -28,7 +28,7 @@ index 10e228a36b213a87e17f26a633adfca18a006e94..07b1db0e1fff1beffe464a3984716d5d if (this.bp < 3.1415927F) { float f = this.bp / 3.1415927F; -@@ -352,7 +358,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -353,7 +359,7 @@ public class EntitySquid extends EntityWaterAnimal { if (i > 100) { this.b.a(0.0F, 0.0F, 0.0F); diff --git a/patches/Purpur/patches/server/0117-Configurable-daylight-cycle.patch b/patches/Purpur/patches/server/0117-Configurable-daylight-cycle.patch index cfd93aa1..e6942b21 100644 --- a/patches/Purpur/patches/server/0117-Configurable-daylight-cycle.patch +++ b/patches/Purpur/patches/server/0117-Configurable-daylight-cycle.patch @@ -18,7 +18,7 @@ index 3086ee023685781d94e2fb99fc8dff5264f01165..74c1047305cac5673e274096709c757e public PacketPlayOutUpdateTime() {} diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ec70acdffa34f55c64fc2399d710dd6186c37636..c8f31cccd0ec0be651c8bca072bcdac04b868027 100644 +index b374460bdb4c4dd0ed3d85380734ae39bc17fdd9..3588bd1e5dc9ad862086dc3f96f99cbb98250162 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -64,6 +64,7 @@ import net.minecraft.network.protocol.game.PacketPlayOutExplosion; @@ -45,7 +45,7 @@ index ec70acdffa34f55c64fc2399d710dd6186c37636..c8f31cccd0ec0be651c8bca072bcdac0 } // Tuinity start - optimise collision -@@ -1189,7 +1192,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1191,7 +1194,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.nextTickListBlock.nextTick(); // Paper this.nextTickListFluid.nextTick(); // Paper this.worldDataServer.u().a(this.server, i); @@ -68,7 +68,7 @@ index ec70acdffa34f55c64fc2399d710dd6186c37636..c8f31cccd0ec0be651c8bca072bcdac0 this.setDayTime(this.worldData.getDayTime() + 1L); } -@@ -1198,6 +1215,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1200,6 +1217,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { public void setDayTime(long i) { this.worldDataServer.setDayTime(i); diff --git a/patches/Purpur/patches/server/0121-Add-tablist-suffix-option-for-afk.patch b/patches/Purpur/patches/server/0121-Add-tablist-suffix-option-for-afk.patch index dcf7ec76..b4e613ac 100644 --- a/patches/Purpur/patches/server/0121-Add-tablist-suffix-option-for-afk.patch +++ b/patches/Purpur/patches/server/0121-Add-tablist-suffix-option-for-afk.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add tablist suffix option for afk diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index e1a6e4a359eb2aa484d479fde398473c349a63ba..9ec4008f2195908130410d2c36fb5bf21b26b991 100644 +index 86bd39af6e3240b82f5afd6e7c554471f7bbd6ba..7faf393954b703efda7290c831ff75b6a02a4dc1 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -2122,7 +2122,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/Purpur/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/Purpur/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch index df2c2a10..95ffd9f4 100644 --- a/patches/Purpur/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch +++ b/patches/Purpur/patches/server/0130-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch @@ -33,7 +33,7 @@ index 1062317c22171bccee78a2db1841e0fd2b3023d7..907bfe42bd866188639f7d25150fcde0 if (flag5) { if (i > 0) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9a6c4f292940b1cef2f4ef87c2e47d82ba5cb60f..b068e08e3922536b4de8a54e7d63a1ec943602f3 100644 +index 7341b1956123d8e5d45d9041e7319de8ee8b768a..470ae06db18a78327cc3218f1f7180bcc859a198 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1076,7 +1076,7 @@ public class CraftEventFactory { diff --git a/patches/Purpur/patches/server/0137-Add-boat-fall-damage-config.patch b/patches/Purpur/patches/server/0137-Add-boat-fall-damage-config.patch index 025b8ee4..163a33cf 100644 --- a/patches/Purpur/patches/server/0137-Add-boat-fall-damage-config.patch +++ b/patches/Purpur/patches/server/0137-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 9ec4008f2195908130410d2c36fb5bf21b26b991..f942c3ab757b768fbd1d459752b7f29094471c56 100644 +index 7faf393954b703efda7290c831ff75b6a02a4dc1..35b26e520be7c06b296ae219be18ef38a1de5dfc 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -106,6 +106,7 @@ import net.minecraft.world.entity.monster.EntityMonster; diff --git a/patches/Purpur/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch b/patches/Purpur/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch index 93161fd2..874c857f 100644 --- a/patches/Purpur/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/Purpur/patches/server/0146-Spread-out-and-optimise-player-list-ticks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spread out and optimise player list ticks diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index aceb83c2f60ee90b8e0369a076b7fa3093dfa821..e8270ad5dc27430bdbc89299a3ff8d8d4249dc4c 100644 +index 3a46a673349de9d9d725516a0fcdb3ebb9b372b3..c316b0468c53825f90d9bc2ad40d655d92857715 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -151,7 +151,7 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/Purpur/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch index 17e99e7d..cf4311dd 100644 --- a/patches/Purpur/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/Purpur/patches/server/0147-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -7,7 +7,7 @@ Configurable chance to spawn a wolf that is rabid. Rabid wolves attack all players, mobs, and animals. diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 617657ff7f27996ed7d97801dc49c9a39f59a240..f3f528065eb9ee2f385edbaceeeddef39552485c 100644 +index 81c0ccc4f8d0d1cf749cc2929c8d8f3c2c6c9887..72febe30dfcc731bc357d5fe1ede2a240f3d176d 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2200,6 +2200,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0149-Configurable-entity-base-attributes.patch b/patches/Purpur/patches/server/0149-Configurable-entity-base-attributes.patch index 147b93b7..f1b6c5a3 100644 --- a/patches/Purpur/patches/server/0149-Configurable-entity-base-attributes.patch +++ b/patches/Purpur/patches/server/0149-Configurable-entity-base-attributes.patch @@ -384,10 +384,10 @@ index 28b5c22ecfe573ac9d91b74e54ebd3e3c5e6373f..88db8ff8cb415b84ab98cc0550c705d5 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index 07b1db0e1fff1beffe464a3984716d5d84ea1873..2d2a3fc083bff18cdf50b1ef49b198f8253987ec 100644 +index be48e12dd6c9a390bf383129953bcd3d1f818427..1e7632d2ca4440dee4e406e26da61411ec5bc88f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -@@ -85,6 +85,11 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -86,6 +86,11 @@ public class EntitySquid extends EntityWaterAnimal { public boolean isInWater() { return this.inWater || world.purpurConfig.squidsCanFly; } @@ -753,7 +753,7 @@ index 27baf5cde99d8f25b1e7583c30339fcc71a3786f..72b298642f17c13f0f5959034e345a47 public static AttributeProvider.Builder m() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index e29bba9143f027077c1051d61296df219cd45861..6461e09e05f9255a399a6ce65d8fb90789a2fd7f 100644 +index 2cb9908a5c53528b2e02a1231752adc5ad8354f8..62d40f726355283baddde349c52bee0599bb293c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -137,6 +137,11 @@ public class EntityCreeper extends EntityMonster { @@ -1291,7 +1291,7 @@ index ad801fc394fbb83cf280ee96f962e7f311615d72..c060d93d9f3332b514a1400dec14f203 public static boolean a(EntityTypes entitytypes, WorldAccess worldaccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java -index 6b2fd555122ba1af0adae3e479540e0da767a99d..280d716f3625c859c04c782fcf2b126068cb3c84 100644 +index b8395c7317494adf36010080931a1c8635ab6cfa..aeeee97a87680f072188d1fcc9ec55b5ca762295 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityZombieVillager.java @@ -29,6 +29,7 @@ import net.minecraft.world.entity.EnumItemSlot; diff --git a/patches/Purpur/patches/server/0152-Implement-TPSBar.patch b/patches/Purpur/patches/server/0152-Implement-TPSBar.patch index 9402e543..79c3a017 100644 --- a/patches/Purpur/patches/server/0152-Implement-TPSBar.patch +++ b/patches/Purpur/patches/server/0152-Implement-TPSBar.patch @@ -37,7 +37,7 @@ index 45cb8681fd0942084b56eb8d45390c2dbc8a4f3d..966b6e2f9b7c473d8dfcae205d8ef8f0 this.isRestarting = isRestarting; this.hasLoggedStop = true; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e8270ad5dc27430bdbc89299a3ff8d8d4249dc4c..8b76e61228c8c766aaef9afe3fc81fc17a10d72c 100644 +index c316b0468c53825f90d9bc2ad40d655d92857715..d710834422afa1d4336f68e2425aaffd64d444e2 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -598,6 +598,8 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0154-PlayerBookTooLargeEvent.patch b/patches/Purpur/patches/server/0154-PlayerBookTooLargeEvent.patch index b37445d9..b10aa13c 100644 --- a/patches/Purpur/patches/server/0154-PlayerBookTooLargeEvent.patch +++ b/patches/Purpur/patches/server/0154-PlayerBookTooLargeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index d5c38de84787089466d73dd5400f3276470716be..42f1216db0832b8606e57fc762d5e016450eaf5b 100644 +index e39e46cf3cb646dd100b698cbc6d4f9b6896696d..f9a232cbc5dc55f3de2286037ca526b15c0842ba 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1115,6 +1115,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1121,6 +1121,7 @@ public class PlayerConnection implements PacketListenerPlayIn { NBTTagList pageList = testStack.getTag().getList("pages", 8); if (pageList.size() > 100) { PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send a book with too many pages"); @@ -16,7 +16,7 @@ index d5c38de84787089466d73dd5400f3276470716be..42f1216db0832b8606e57fc762d5e016 minecraftServer.scheduleOnMain(() -> this.disconnect("Book too large!")); return; } -@@ -1127,6 +1128,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1133,6 +1134,7 @@ public class PlayerConnection implements PacketListenerPlayIn { int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send a book with with a page too large!"); @@ -24,7 +24,7 @@ index d5c38de84787089466d73dd5400f3276470716be..42f1216db0832b8606e57fc762d5e016 minecraftServer.scheduleOnMain(() -> this.disconnect("Book too large!")); return; } -@@ -1150,6 +1152,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1156,6 +1158,7 @@ public class PlayerConnection implements PacketListenerPlayIn { if (byteTotal > byteAllowed) { PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); diff --git a/patches/Purpur/patches/server/0157-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/Purpur/patches/server/0157-Add-mobGriefing-bypass-to-everything-affected.patch index 2c29643e..55eaf7f7 100644 --- a/patches/Purpur/patches/server/0157-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/Purpur/patches/server/0157-Add-mobGriefing-bypass-to-everything-affected.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected This adds the "bypass-mob-griefing" world config option to everything that is affected by the gamerule. diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index f3f528065eb9ee2f385edbaceeeddef39552485c..1e57358c02e67a6b062149926ada46696da24487 100644 +index 72febe30dfcc731bc357d5fe1ede2a240f3d176d..ac5b13e943d70cfb982f9e2c8e19ab1e69b6ec43 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -1571,7 +1571,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0159-Add-EntityTeleportHinderedEvent.patch b/patches/Purpur/patches/server/0159-Add-EntityTeleportHinderedEvent.patch index b607563a..b9b9b411 100644 --- a/patches/Purpur/patches/server/0159-Add-EntityTeleportHinderedEvent.patch +++ b/patches/Purpur/patches/server/0159-Add-EntityTeleportHinderedEvent.patch @@ -82,10 +82,10 @@ index d918194e45953764fa3fd286b715714330a60941..70496562faa89e92da34a4f7b891f845 if (this.exitPortal == null && this.world.getTypeKey() == DimensionManager.THE_END) { // CraftBukkit - work in alternate worlds this.a((WorldServer) this.world); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 936933ab4c9e78877e1a2fc250721c2158e3810c..c47c98480572e83b1385fcd62940d4c69a79f9dc 100644 +index 23a3b1b317b6b3e9d812f5a7b09b099b0528c59e..4f40c6c3397596c81147fae4a6a51bfd517643d2 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -302,6 +302,7 @@ public abstract class BlockBase { +@@ -303,6 +303,7 @@ public abstract class BlockBase { return 0; } diff --git a/patches/Purpur/patches/server/0163-Fix-stuck-in-portals.patch b/patches/Purpur/patches/server/0163-Fix-stuck-in-portals.patch index b463400a..d99b2233 100644 --- a/patches/Purpur/patches/server/0163-Fix-stuck-in-portals.patch +++ b/patches/Purpur/patches/server/0163-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index f942c3ab757b768fbd1d459752b7f29094471c56..ccee67df065dcdee5e0e24ab12476572ca696687 100644 +index 35b26e520be7c06b296ae219be18ef38a1de5dfc..9cedd9c7aa79540710ae248c61eeb7076a84fca4 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1293,6 +1293,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/Purpur/patches/server/0165-Config-to-use-infinity-bows-without-arrows.patch b/patches/Purpur/patches/server/0164-Config-to-use-infinity-bows-without-arrows.patch similarity index 100% rename from patches/Purpur/patches/server/0165-Config-to-use-infinity-bows-without-arrows.patch rename to patches/Purpur/patches/server/0164-Config-to-use-infinity-bows-without-arrows.patch diff --git a/patches/Purpur/patches/server/0164-Fix-PlayerEditBookEvent-not-saving-new-book.patch b/patches/Purpur/patches/server/0164-Fix-PlayerEditBookEvent-not-saving-new-book.patch deleted file mode 100644 index 94e6b824..00000000 --- a/patches/Purpur/patches/server/0164-Fix-PlayerEditBookEvent-not-saving-new-book.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: BillyGalbreath -Date: Mon, 25 Jan 2021 10:22:28 -0600 -Subject: [PATCH] Fix PlayerEditBookEvent not saving new book - - -diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 42f1216db0832b8606e57fc762d5e016450eaf5b..c93fc03d49c467a6db2e55f4999edad3452136a4 100644 ---- a/src/main/java/net/minecraft/server/network/PlayerConnection.java -+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1210,7 +1210,7 @@ public class PlayerConnection implements PacketListenerPlayIn { - list.stream().map(s -> s = color(s, hasPerm, false)).map(NBTTagString::a).forEach(nbttaglist::add); // Purpur - edit book - ItemStack old = itemstack.cloneItemStack(); // CraftBukkit - itemstack.a("pages", (NBTBase) nbttaglist); -- CraftEventFactory.handleEditBookEvent(player, i, old, itemstack); // CraftBukkit -+ this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Purpur - } - } - diff --git a/patches/Purpur/patches/server/0166-Toggle-for-water-sensitive-mob-damage.patch b/patches/Purpur/patches/server/0165-Toggle-for-water-sensitive-mob-damage.patch similarity index 98% rename from patches/Purpur/patches/server/0166-Toggle-for-water-sensitive-mob-damage.patch rename to patches/Purpur/patches/server/0165-Toggle-for-water-sensitive-mob-damage.patch index 768a33d3..cf9f2a1e 100644 --- a/patches/Purpur/patches/server/0166-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/Purpur/patches/server/0165-Toggle-for-water-sensitive-mob-damage.patch @@ -19,7 +19,7 @@ index 63d93060b350069040876aaacb91c853d674ea7b..e9793954c872baacfe7be80ecf3888e8 } return; diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 1e57358c02e67a6b062149926ada46696da24487..66f1750172df09f1cbb47ca5a679a77a9ccab282 100644 +index ac5b13e943d70cfb982f9e2c8e19ab1e69b6ec43..6ef78c9099a234abce3669a23e32777ec3beaba7 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2974,6 +2974,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0167-Config-to-always-tame-in-Creative.patch b/patches/Purpur/patches/server/0166-Config-to-always-tame-in-Creative.patch similarity index 100% rename from patches/Purpur/patches/server/0167-Config-to-always-tame-in-Creative.patch rename to patches/Purpur/patches/server/0166-Config-to-always-tame-in-Creative.patch diff --git a/patches/Purpur/patches/server/0168-End-crystal-explosion-options.patch b/patches/Purpur/patches/server/0167-End-crystal-explosion-options.patch similarity index 100% rename from patches/Purpur/patches/server/0168-End-crystal-explosion-options.patch rename to patches/Purpur/patches/server/0167-End-crystal-explosion-options.patch diff --git a/patches/Purpur/patches/server/0169-Add-unsafe-Entity-serialization-API.patch b/patches/Purpur/patches/server/0168-Add-unsafe-Entity-serialization-API.patch similarity index 100% rename from patches/Purpur/patches/server/0169-Add-unsafe-Entity-serialization-API.patch rename to patches/Purpur/patches/server/0168-Add-unsafe-Entity-serialization-API.patch diff --git a/patches/Purpur/patches/server/0170-Add-ghast-allow-griefing-option.patch b/patches/Purpur/patches/server/0169-Add-ghast-allow-griefing-option.patch similarity index 100% rename from patches/Purpur/patches/server/0170-Add-ghast-allow-griefing-option.patch rename to patches/Purpur/patches/server/0169-Add-ghast-allow-griefing-option.patch diff --git a/patches/Purpur/patches/server/0171-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/Purpur/patches/server/0170-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch similarity index 100% rename from patches/Purpur/patches/server/0171-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch rename to patches/Purpur/patches/server/0170-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch diff --git a/patches/Purpur/patches/server/0172-Dont-run-with-scissors.patch b/patches/Purpur/patches/server/0171-Dont-run-with-scissors.patch similarity index 94% rename from patches/Purpur/patches/server/0172-Dont-run-with-scissors.patch rename to patches/Purpur/patches/server/0171-Dont-run-with-scissors.patch index 30af353a..ce15e0a0 100644 --- a/patches/Purpur/patches/server/0172-Dont-run-with-scissors.patch +++ b/patches/Purpur/patches/server/0171-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index c93fc03d49c467a6db2e55f4999edad3452136a4..8359ccf316d292d81c56600887178cea6e33f270 100644 +index f9a232cbc5dc55f3de2286037ca526b15c0842ba..1e64c2467c1c96e93f6843a9f7283baf2bd33a61 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1533,6 +1533,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1545,6 +1545,12 @@ public class PlayerConnection implements PacketListenerPlayIn { this.player.fallDistance = 0.0F; } diff --git a/patches/Purpur/patches/server/0173-One-Punch-Man.patch b/patches/Purpur/patches/server/0172-One-Punch-Man.patch similarity index 97% rename from patches/Purpur/patches/server/0173-One-Punch-Man.patch rename to patches/Purpur/patches/server/0172-One-Punch-Man.patch index 444f4e09..ee63c325 100644 --- a/patches/Purpur/patches/server/0173-One-Punch-Man.patch +++ b/patches/Purpur/patches/server/0172-One-Punch-Man.patch @@ -5,7 +5,7 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 66f1750172df09f1cbb47ca5a679a77a9ccab282..659ccc8075945531ca714c43a034f2d5baa5defb 100644 +index 6ef78c9099a234abce3669a23e32777ec3beaba7..49fefb5f20bda418ae9fcdc238630c5f27b1b859 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2019,6 +2019,23 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0174-Add-config-for-snow-on-blue-ice.patch b/patches/Purpur/patches/server/0173-Add-config-for-snow-on-blue-ice.patch similarity index 100% rename from patches/Purpur/patches/server/0174-Add-config-for-snow-on-blue-ice.patch rename to patches/Purpur/patches/server/0173-Add-config-for-snow-on-blue-ice.patch diff --git a/patches/Purpur/patches/server/0175-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/Purpur/patches/server/0174-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch similarity index 100% rename from patches/Purpur/patches/server/0175-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch rename to patches/Purpur/patches/server/0174-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch diff --git a/patches/Purpur/patches/server/0176-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/Purpur/patches/server/0175-Config-to-ignore-nearby-mobs-when-sleeping.patch similarity index 96% rename from patches/Purpur/patches/server/0176-Config-to-ignore-nearby-mobs-when-sleeping.patch rename to patches/Purpur/patches/server/0175-Config-to-ignore-nearby-mobs-when-sleeping.patch index d1855d41..4a38e87a 100644 --- a/patches/Purpur/patches/server/0176-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/Purpur/patches/server/0175-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index ccee67df065dcdee5e0e24ab12476572ca696687..b4dbc59faff3fd6ceb74d829762eb68e649975c5 100644 +index 9cedd9c7aa79540710ae248c61eeb7076a84fca4..b8c63c25d2ad9692475e8c7cb307f45853b86ca4 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1443,7 +1443,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/Purpur/patches/server/0177-Config-for-Enderman-to-aggro-spawned-Endermites.patch b/patches/Purpur/patches/server/0176-Config-for-Enderman-to-aggro-spawned-Endermites.patch similarity index 100% rename from patches/Purpur/patches/server/0177-Config-for-Enderman-to-aggro-spawned-Endermites.patch rename to patches/Purpur/patches/server/0176-Config-for-Enderman-to-aggro-spawned-Endermites.patch diff --git a/patches/Purpur/patches/server/0178-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/Purpur/patches/server/0177-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch similarity index 100% rename from patches/Purpur/patches/server/0178-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch rename to patches/Purpur/patches/server/0177-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch diff --git a/patches/Purpur/patches/server/0179-Tick-fluids-config.patch b/patches/Purpur/patches/server/0178-Tick-fluids-config.patch similarity index 100% rename from patches/Purpur/patches/server/0179-Tick-fluids-config.patch rename to patches/Purpur/patches/server/0178-Tick-fluids-config.patch diff --git a/patches/Purpur/patches/server/0180-Config-to-disable-Llama-caravans.patch b/patches/Purpur/patches/server/0179-Config-to-disable-Llama-caravans.patch similarity index 100% rename from patches/Purpur/patches/server/0180-Config-to-disable-Llama-caravans.patch rename to patches/Purpur/patches/server/0179-Config-to-disable-Llama-caravans.patch diff --git a/patches/Purpur/patches/server/0181-Config-to-make-Creepers-explode-on-death.patch b/patches/Purpur/patches/server/0180-Config-to-make-Creepers-explode-on-death.patch similarity index 97% rename from patches/Purpur/patches/server/0181-Config-to-make-Creepers-explode-on-death.patch rename to patches/Purpur/patches/server/0180-Config-to-make-Creepers-explode-on-death.patch index ed80618c..76c83cf7 100644 --- a/patches/Purpur/patches/server/0181-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/Purpur/patches/server/0180-Config-to-make-Creepers-explode-on-death.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death Creepers exploded after being killed in the alpha days. This brings that back. diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java -index 6461e09e05f9255a399a6ce65d8fb90789a2fd7f..5e70746494c5397d4d798d24b7292c57d145aef2 100644 +index 62d40f726355283baddde349c52bee0599bb293c..014091f35ee5aac0ee2f155ccec2daf586e4d3d3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityCreeper.java @@ -7,6 +7,7 @@ import net.minecraft.network.syncher.DataWatcher; diff --git a/patches/Purpur/patches/server/0182-Configurable-ravager-griefable-blocks-list.patch b/patches/Purpur/patches/server/0181-Configurable-ravager-griefable-blocks-list.patch similarity index 100% rename from patches/Purpur/patches/server/0182-Configurable-ravager-griefable-blocks-list.patch rename to patches/Purpur/patches/server/0181-Configurable-ravager-griefable-blocks-list.patch diff --git a/patches/Purpur/patches/server/0183-Sneak-to-bulk-process-composter.patch b/patches/Purpur/patches/server/0182-Sneak-to-bulk-process-composter.patch similarity index 100% rename from patches/Purpur/patches/server/0183-Sneak-to-bulk-process-composter.patch rename to patches/Purpur/patches/server/0182-Sneak-to-bulk-process-composter.patch diff --git a/patches/Purpur/patches/server/0184-Config-for-skipping-night.patch b/patches/Purpur/patches/server/0183-Config-for-skipping-night.patch similarity index 93% rename from patches/Purpur/patches/server/0184-Config-for-skipping-night.patch rename to patches/Purpur/patches/server/0183-Config-for-skipping-night.patch index 53b48c07..39502c6b 100644 --- a/patches/Purpur/patches/server/0184-Config-for-skipping-night.patch +++ b/patches/Purpur/patches/server/0183-Config-for-skipping-night.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index c8f31cccd0ec0be651c8bca072bcdac04b868027..62d1ee6f091d1b80d6f96930d2edb91259e15ffa 100644 +index 3588bd1e5dc9ad862086dc3f96f99cbb98250162..80b08904143b7656aa125a396bbd2866370c8906 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1026,7 +1026,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1028,7 +1028,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // CraftBukkit end diff --git a/patches/Purpur/patches/server/0185-Add-config-for-villager-trading.patch b/patches/Purpur/patches/server/0184-Add-config-for-villager-trading.patch similarity index 100% rename from patches/Purpur/patches/server/0185-Add-config-for-villager-trading.patch rename to patches/Purpur/patches/server/0184-Add-config-for-villager-trading.patch diff --git a/patches/Purpur/patches/server/0186-Allow-infinity-on-crossbows.patch b/patches/Purpur/patches/server/0185-Allow-infinity-on-crossbows.patch similarity index 100% rename from patches/Purpur/patches/server/0186-Allow-infinity-on-crossbows.patch rename to patches/Purpur/patches/server/0185-Allow-infinity-on-crossbows.patch diff --git a/patches/Purpur/patches/server/0187-Drowning-Settings.patch b/patches/Purpur/patches/server/0186-Drowning-Settings.patch similarity index 97% rename from patches/Purpur/patches/server/0187-Drowning-Settings.patch rename to patches/Purpur/patches/server/0186-Drowning-Settings.patch index 09e104fb..90a2e4a5 100644 --- a/patches/Purpur/patches/server/0187-Drowning-Settings.patch +++ b/patches/Purpur/patches/server/0186-Drowning-Settings.patch @@ -18,7 +18,7 @@ index d321616b7f726f4ff307b46ced9efce6cc20b82f..c20787a20cf6f273092d2b7ef0d7d90a public Iterable bn() { diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 659ccc8075945531ca714c43a034f2d5baa5defb..1d319ad82179ae261738d6e70aac3bbbd3aecae7 100644 +index 49fefb5f20bda418ae9fcdc238630c5f27b1b859..7dbfd2dca4d99fcafc3a2fcd83b39f5d52c24f1c 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -394,7 +394,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Purpur/patches/server/0188-Break-individual-slabs-when-sneaking.patch b/patches/Purpur/patches/server/0187-Break-individual-slabs-when-sneaking.patch similarity index 100% rename from patches/Purpur/patches/server/0188-Break-individual-slabs-when-sneaking.patch rename to patches/Purpur/patches/server/0187-Break-individual-slabs-when-sneaking.patch diff --git a/patches/Purpur/patches/server/0189-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/Purpur/patches/server/0188-Config-to-disable-hostile-mob-spawn-on-ice.patch similarity index 100% rename from patches/Purpur/patches/server/0189-Config-to-disable-hostile-mob-spawn-on-ice.patch rename to patches/Purpur/patches/server/0188-Config-to-disable-hostile-mob-spawn-on-ice.patch diff --git a/patches/Purpur/patches/server/0190-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/Purpur/patches/server/0189-Config-to-show-Armor-Stand-arms-on-spawn.patch similarity index 100% rename from patches/Purpur/patches/server/0190-Config-to-show-Armor-Stand-arms-on-spawn.patch rename to patches/Purpur/patches/server/0189-Config-to-show-Armor-Stand-arms-on-spawn.patch diff --git a/patches/Purpur/patches/server/0191-Option-to-make-doors-require-restone.patch b/patches/Purpur/patches/server/0190-Option-to-make-doors-require-redstone.patch similarity index 98% rename from patches/Purpur/patches/server/0191-Option-to-make-doors-require-restone.patch rename to patches/Purpur/patches/server/0190-Option-to-make-doors-require-redstone.patch index 5a33c543..6e62dcc8 100644 --- a/patches/Purpur/patches/server/0191-Option-to-make-doors-require-restone.patch +++ b/patches/Purpur/patches/server/0190-Option-to-make-doors-require-redstone.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Wed, 24 Mar 2021 04:40:11 -0500 -Subject: [PATCH] Option to make doors require restone +Subject: [PATCH] Option to make doors require redstone diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorInteractDoor.java b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorInteractDoor.java diff --git a/patches/Purpur/patches/server/0192-Config-to-allow-for-unsafe-enchants.patch b/patches/Purpur/patches/server/0191-Config-to-allow-for-unsafe-enchants.patch similarity index 100% rename from patches/Purpur/patches/server/0192-Config-to-allow-for-unsafe-enchants.patch rename to patches/Purpur/patches/server/0191-Config-to-allow-for-unsafe-enchants.patch diff --git a/patches/Purpur/patches/server/0193-Configurable-sponge-absorption.patch b/patches/Purpur/patches/server/0192-Configurable-sponge-absorption.patch similarity index 100% rename from patches/Purpur/patches/server/0193-Configurable-sponge-absorption.patch rename to patches/Purpur/patches/server/0192-Configurable-sponge-absorption.patch diff --git a/patches/Purpur/patches/server/0194-Projectile-offset-config.patch b/patches/Purpur/patches/server/0193-Projectile-offset-config.patch similarity index 100% rename from patches/Purpur/patches/server/0194-Projectile-offset-config.patch rename to patches/Purpur/patches/server/0193-Projectile-offset-config.patch diff --git a/patches/Purpur/patches/server/0195-Config-for-powered-rail-activation-distance.patch b/patches/Purpur/patches/server/0194-Config-for-powered-rail-activation-distance.patch similarity index 100% rename from patches/Purpur/patches/server/0195-Config-for-powered-rail-activation-distance.patch rename to patches/Purpur/patches/server/0194-Config-for-powered-rail-activation-distance.patch diff --git a/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch b/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch index 1f372adb..b7b00bb8 100644 --- a/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch +++ b/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch @@ -8,7 +8,7 @@ Add per player no-tick, tick, and send view distances. Also add send view distance to World. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index b01cda41fcc14364af6a43165e97a01a5c08d319..b589afda0f759823f8114c82ae1dd2f31e334eed 100644 +index 4c80a999fcc4d656c047b96cb549782c693b33cd..226c9a1fc49b11a9dd7653c695f7031bb51c3a41 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -3517,6 +3517,26 @@ public interface World extends PluginMessageRecipient, Metadatable, net.kyori.ad diff --git a/patches/Tuinity/patches/server/0001-Tuinity-POM-Changes.patch b/patches/Tuinity/patches/server/0001-Tuinity-POM-Changes.patch index b15cf66b..f2a2e0a2 100644 --- a/patches/Tuinity/patches/server/0001-Tuinity-POM-Changes.patch +++ b/patches/Tuinity/patches/server/0001-Tuinity-POM-Changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Tuinity POM Changes diff --git a/pom.xml b/pom.xml -index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..5d5cf802e6b6a0d90bf8326e7761c6d358b63b3f 100644 +index ab57297272c2d6f3d21067081bcaf8775b8fff09..3c60bf75dacd00cac2e35b0e597992ce0ce9448c 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -23,7 +23,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..5d5cf802e6b6a0d90bf8326e7761c6d3 -@@ -19,16 +19,16 @@ +@@ -19,8 +19,8 @@ @@ -34,6 +34,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..5d5cf802e6b6a0d90bf8326e7761c6d3 dev-SNAPSHOT ../pom.xml +@@ -39,8 +39,8 @@ @@ -44,7 +45,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..5d5cf802e6b6a0d90bf8326e7761c6d3 ${project.version} compile -@@ -153,15 +153,15 @@ +@@ -160,15 +160,15 @@ diff --git a/patches/Tuinity/patches/server/0002-Brand-changes.patch b/patches/Tuinity/patches/server/0002-Brand-changes.patch index e6693d3c..a7ded9d1 100644 --- a/patches/Tuinity/patches/server/0002-Brand-changes.patch +++ b/patches/Tuinity/patches/server/0002-Brand-changes.patch @@ -66,10 +66,10 @@ index 03b8d67a5f0088c0254b2099f27e8dcae32a6221..d3c235693094170767cbd12d0e009ce1 private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 23389d0a0e7bd8aeb2f1ab0ea6a149ef99e800fb..0d73e9648f02a1dd1785f2dc75d8d1ca04163925 100644 +index 154f3a6a3d37b94c40cb29c305e3aa5fb494850c..ad9dd0f4518b1b6b1d84f5deaf1029de103100da 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -254,7 +254,7 @@ public class Main { +@@ -253,7 +253,7 @@ public class Main { if (buildDate.before(deadline.getTime())) { // Paper start - This is some stupid bullshit System.err.println("*** Warning, you've not updated in a while! ***"); diff --git a/patches/Tuinity/patches/server/0004-Util-patch.patch b/patches/Tuinity/patches/server/0004-Util-patch.patch index 66f57823..487958e9 100644 --- a/patches/Tuinity/patches/server/0004-Util-patch.patch +++ b/patches/Tuinity/patches/server/0004-Util-patch.patch @@ -2412,7 +2412,7 @@ index 300884804bf9ac3fba7c30a04d8adf52e3dd2e3e..f3d6811156e68040106f1d027a10ea33 // Paper start - async io diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 492b57395cd51e39e1d88b193399ce02be378658..58528d2b5e30b0436b93213ba31d1777fe3e953e 100644 +index ef9b08df58d9d28df6b8ade076d95bf7e5cb1b18..f88b80e4772ade4199564cf96ef94ce45e493311 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -168,6 +168,7 @@ import org.bukkit.event.server.MapInitializeEvent; @@ -2540,10 +2540,10 @@ index 429f0591c6a55f6c5d08a0755f7d39da676468bc..6a3e859eef2878d9e203bba7930e52d7 final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..19936d615c14c4cb4eeddfaaf8438765f6c0b8b3 100644 +index 3fdafc0ff0c4148ec844dbdc1455d17cdcb4a75a..1499dfb2f21294f91fb078d12e8e2e9e8b8b0382 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -347,14 +347,14 @@ public abstract class BlockBase { +@@ -348,14 +348,14 @@ public abstract class BlockBase { public abstract static class BlockData extends IBlockDataHolder { @@ -2561,7 +2561,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..19936d615c14c4cb4eeddfaaf8438765 private final BlockBase.e l; private final BlockBase.e m; private final BlockBase.e n; -@@ -395,12 +395,20 @@ public abstract class BlockBase { +@@ -396,12 +396,20 @@ public abstract class BlockBase { protected Fluid fluid; // Paper end @@ -2582,7 +2582,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..19936d615c14c4cb4eeddfaaf8438765 } -@@ -424,10 +432,12 @@ public abstract class BlockBase { +@@ -425,10 +433,12 @@ public abstract class BlockBase { return this.a != null ? this.a.g : this.getBlock().b(this.p(), iblockaccess, blockposition); } @@ -2595,7 +2595,7 @@ index ac3709c8158d42ccafd457cfa44a16dc8c9eb949..19936d615c14c4cb4eeddfaaf8438765 public VoxelShape a(IBlockAccess iblockaccess, BlockPosition blockposition, EnumDirection enumdirection) { return this.a != null && this.a.i != null ? this.a.i[enumdirection.ordinal()] : VoxelShapes.a(this.c(iblockaccess, blockposition), enumdirection); } -@@ -437,7 +447,7 @@ public abstract class BlockBase { +@@ -438,7 +448,7 @@ public abstract class BlockBase { } public final boolean d() { // Paper diff --git a/patches/Tuinity/patches/server/0005-Tuinity-Server-Config.patch b/patches/Tuinity/patches/server/0005-Tuinity-Server-Config.patch index 81424d0e..54b2d0e8 100644 --- a/patches/Tuinity/patches/server/0005-Tuinity-Server-Config.patch +++ b/patches/Tuinity/patches/server/0005-Tuinity-Server-Config.patch @@ -342,7 +342,7 @@ index d3c235693094170767cbd12d0e009ce1c6c4b125..08783d678bd9729c144a6de2718253bd 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 0d73e9648f02a1dd1785f2dc75d8d1ca04163925..2774abda3dd1390ae904bf2b177bdd0f11968f40 100644 +index ad9dd0f4518b1b6b1d84f5deaf1029de103100da..145748b5ca095cd555fd1f085a596bf0f58fea13 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -140,6 +140,13 @@ public class Main { diff --git a/patches/Tuinity/patches/server/0008-Add-soft-async-catcher.patch b/patches/Tuinity/patches/server/0008-Add-soft-async-catcher.patch index a5798065..456cb6cb 100644 --- a/patches/Tuinity/patches/server/0008-Add-soft-async-catcher.patch +++ b/patches/Tuinity/patches/server/0008-Add-soft-async-catcher.patch @@ -184,7 +184,7 @@ index e9b236bb95985ba0806a3d27d705ac61bce55ea5..c5038aa66703484a9243579ba4a6c92d 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/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index f65eb0168ed365e5c1b490c56ec84e3b7ff87c1d..8d792f96ca655c7f5d66d19af9c37efbf40fa556 100644 +index 1df8fb8cb3fcf8201e1c5fa8ca13f7a9c632c379..55637a74c6badf8b06512c36ae273404cc05d1be 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java @@ -103,6 +103,7 @@ public class EntityTrackerEntry { @@ -256,10 +256,10 @@ index f3d6811156e68040106f1d027a10ea33b5646b05..e7cd6392d722d0e13b86b57d70946b18 this.noTickViewDistance = viewDistance; diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 58528d2b5e30b0436b93213ba31d1777fe3e953e..392e0638fea678c5eddaca0cbed7d84dd41c30ed 100644 +index f88b80e4772ade4199564cf96ef94ce45e493311..c485837c751fb8bf7c30dbca955321f586940a8b 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1773,6 +1773,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1775,6 +1775,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @Override public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) { diff --git a/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch b/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch index b2a2991b..fef03fe5 100644 --- a/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch +++ b/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch @@ -247,7 +247,7 @@ index 3c804c7b20a14ea6e510810e2be10c1cc89ff5c1..47da7efffde2e6d63c1a064b950abf81 return new TicketType<>(s, comparator, 0L); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e739b4f8a7b8785ceb11c553bd27e2fe0e64a4bb..42babc6dc316374981e4a5e813d38645927e982d 100644 +index 62513d3acb930c4c9fa3d875a1fc94bb4d948951..69b776b0a7e254a84fcf50784cde30629488a2d9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -505,6 +505,7 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0010-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/Tuinity/patches/server/0010-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index 3ec57c9e..8a581c50 100644 --- a/patches/Tuinity/patches/server/0010-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/Tuinity/patches/server/0010-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -68,10 +68,10 @@ index 890362d28ab9cb760c73fe5014e144fb08ada6b8..3c532d3996dfc734ec07181701280b60 // Paper - nuke IOWorker } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660bec66927 100644 +index 1b0535ba211904b2384cc80c02c21ed1a606e752..7cdac33e153ccba0a7e8b5aa8fbcbb58ade6a9d2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -5,6 +5,7 @@ import java.io.BufferedInputStream; +@@ -6,6 +6,7 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -79,7 +79,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; -@@ -35,15 +36,350 @@ public class RegionFile implements AutoCloseable { +@@ -36,15 +37,350 @@ public class RegionFile implements AutoCloseable { private static final Logger LOGGER = LogManager.getLogger(); private static final ByteBuffer c = ByteBuffer.allocateDirect(1); private final FileChannel dataFile; @@ -434,7 +434,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 public final java.util.concurrent.locks.ReentrantLock fileLock = new java.util.concurrent.locks.ReentrantLock(true); // Paper // Paper start - Cache chunk status -@@ -71,10 +407,21 @@ public class RegionFile implements AutoCloseable { +@@ -72,10 +408,21 @@ public class RegionFile implements AutoCloseable { // Paper end public RegionFile(File file, File file1, boolean flag) throws IOException { @@ -456,7 +456,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 this.g = ByteBuffer.allocateDirect(8192); this.file = path.toFile(); // Paper initOversizedState(); // Paper -@@ -103,14 +450,16 @@ public class RegionFile implements AutoCloseable { +@@ -104,14 +451,16 @@ public class RegionFile implements AutoCloseable { RegionFile.LOGGER.warn("Region file {} has truncated header: {}", path, i); } @@ -477,7 +477,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 // Spigot start if (j1 == 255) { // We're maxed out, so we need to read the proper length from the section -@@ -118,33 +467,105 @@ public class RegionFile implements AutoCloseable { +@@ -119,33 +468,105 @@ public class RegionFile implements AutoCloseable { this.dataFile.read(realLen, i1 * 4096); j1 = (realLen.getInt(0) + 4) / 4096 + 1; } @@ -589,8 +589,8 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 @Nullable public synchronized DataInputStream getReadStream(ChunkCoordIntPair chunkCoordIntPair) throws IOException { return a(chunkCoordIntPair);} // Paper - OBFHELPER @Nullable public synchronized DataInputStream a(ChunkCoordIntPair chunkcoordintpair) throws IOException { -@@ -169,6 +590,12 @@ public class RegionFile implements AutoCloseable { - ((java.nio.Buffer) bytebuffer).flip(); +@@ -170,6 +591,12 @@ public class RegionFile implements AutoCloseable { + ((java.nio.Buffer) bytebuffer).flip(); // CraftBukkit - decompile error if (bytebuffer.remaining() < 5) { RegionFile.LOGGER.error("Chunk {} header is truncated: expected {} but read {}", chunkcoordintpair, l, bytebuffer.remaining()); + // Tuinity start - recalculate header on regionfile corruption @@ -602,7 +602,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 return null; } else { int i1 = bytebuffer.getInt(); -@@ -176,6 +603,12 @@ public class RegionFile implements AutoCloseable { +@@ -177,6 +604,12 @@ public class RegionFile implements AutoCloseable { if (i1 == 0) { RegionFile.LOGGER.warn("Chunk {} is allocated, but stream is missing", chunkcoordintpair); @@ -615,7 +615,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 return null; } else { int j1 = i1 - 1; -@@ -183,17 +616,49 @@ public class RegionFile implements AutoCloseable { +@@ -184,17 +617,49 @@ public class RegionFile implements AutoCloseable { if (a(b0)) { if (j1 != 0) { RegionFile.LOGGER.warn("Chunk has both internal and external streams"); @@ -667,7 +667,7 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 } } } -@@ -353,10 +818,15 @@ public class RegionFile implements AutoCloseable { +@@ -354,10 +819,15 @@ public class RegionFile implements AutoCloseable { } private ByteBuffer b() { @@ -681,16 +681,16 @@ index 4999ba61fb04713ffe3d23c556f732dc4abbf0bc..0bba434d29b09d7d164f5ca4f49cd660 bytebuffer.putInt(1); - bytebuffer.put((byte) (this.f.a() | 128)); + bytebuffer.put((byte) (compressionType.compressionTypeId() | 128)); // Tuinity - replace with compressionType - ((java.nio.Buffer) bytebuffer).flip(); + ((java.nio.Buffer) bytebuffer).flip(); // CraftBukkit - decompile error return bytebuffer; } -@@ -393,6 +863,7 @@ public class RegionFile implements AutoCloseable { +@@ -394,6 +864,7 @@ public class RegionFile implements AutoCloseable { }; } -+ private final void flushHeader() throws IOException { this.b(); } // Tuinity - OBFHELPER ++ private final void flushHeader() throws IOException { this.c(); } // Tuinity - OBFHELPER private void c() throws IOException { - ((java.nio.Buffer) this.g).position(0); + ((java.nio.Buffer) this.g).position(0); // CraftBukkit - decompile error this.dataFile.write(this.g, 0L); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileBitSet.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileBitSet.java index c96eac4b0b519b2807153fa5a8ebf5a020a2b140..b5c8d9b17c2d5e229db5b48448709194d1fc04f8 100644 diff --git a/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch b/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch index f1bf5972..32ff6aff 100644 --- a/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch +++ b/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch @@ -35,7 +35,7 @@ index 5aa558bd05c4ab735730263f220478c36a4ba0fd..6473b951788a3ecbeee4811ea0288ff4 } \ No newline at end of file diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 42babc6dc316374981e4a5e813d38645927e982d..68e2f318780f613a85fc85e08d25f00e0c74ada3 100644 +index 69b776b0a7e254a84fcf50784cde30629488a2d9..4356d30353cc856c53731e9f10885d74a62027d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -342,6 +342,14 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0014-Detail-more-information-in-watchdog-dumps.patch b/patches/Tuinity/patches/server/0014-Detail-more-information-in-watchdog-dumps.patch index f6191528..ed86f0aa 100644 --- a/patches/Tuinity/patches/server/0014-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/Tuinity/patches/server/0014-Detail-more-information-in-watchdog-dumps.patch @@ -74,10 +74,10 @@ index 67d8fe8ad036a9252c774bb6a914c8ec79981876..71a000edfab27c9965d1929af7858282 }); throw CancelledPacketHandleException.INSTANCE; diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 392e0638fea678c5eddaca0cbed7d84dd41c30ed..455de3a3ce619a0b6116b9d84e0a1a05938bfea0 100644 +index c485837c751fb8bf7c30dbca955321f586940a8b..25073eb392bb00daf7e0b68be4767cea416c1816 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1013,7 +1013,26 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1015,7 +1015,26 @@ public class WorldServer extends World implements GeneratorAccessSeed { } @@ -104,7 +104,7 @@ index 392e0638fea678c5eddaca0cbed7d84dd41c30ed..455de3a3ce619a0b6116b9d84e0a1a05 if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) { this.chunkCheck(entity); } else { -@@ -1066,6 +1085,13 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1068,6 +1087,13 @@ public class WorldServer extends World implements GeneratorAccessSeed { //} finally { timer.stopTiming(); } // Paper - timings - move up } diff --git a/patches/Tuinity/patches/server/0015-Execute-chunk-tasks-mid-tick.patch b/patches/Tuinity/patches/server/0015-Execute-chunk-tasks-mid-tick.patch index 05a72bed..e258bef2 100644 --- a/patches/Tuinity/patches/server/0015-Execute-chunk-tasks-mid-tick.patch +++ b/patches/Tuinity/patches/server/0015-Execute-chunk-tasks-mid-tick.patch @@ -279,7 +279,7 @@ index c5038aa66703484a9243579ba4a6c92d138fc388..e38e507ccc26058b4f4d2e8fe0611885 @Override protected boolean executeNext() { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 455de3a3ce619a0b6116b9d84e0a1a05938bfea0..dc23aa8b05914d5c458da0ea65b82ff729535471 100644 +index 25073eb392bb00daf7e0b68be4767cea416c1816..1658c03b70b5984c87d069276efcc7b8c8878431 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -410,6 +410,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -293,7 +293,7 @@ index 455de3a3ce619a0b6116b9d84e0a1a05938bfea0..dc23aa8b05914d5c458da0ea65b82ff7 // Add env and gen to constructor, WorldData -> WorldDataServer public WorldServer(MinecraftServer minecraftserver, Executor executor, Convertable.ConversionSession convertable_conversionsession, IWorldDataServer iworlddataserver, ResourceKey resourcekey, DimensionManager dimensionmanager, WorldLoadListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) { super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getMethodProfiler, false, flag, i, gen, env, executor); // Paper pass executor -@@ -672,7 +676,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -674,7 +678,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } timings.scheduledBlocks.stopTiming(); // Paper @@ -302,7 +302,7 @@ index 455de3a3ce619a0b6116b9d84e0a1a05938bfea0..dc23aa8b05914d5c458da0ea65b82ff7 gameprofilerfiller.exitEnter("raid"); this.timings.raids.startTiming(); // Paper - timings this.persistentRaid.a(); -@@ -681,7 +685,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -683,7 +687,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { timings.doSounds.startTiming(); // Spigot this.ak(); timings.doSounds.stopTiming(); // Spigot @@ -311,7 +311,7 @@ index 455de3a3ce619a0b6116b9d84e0a1a05938bfea0..dc23aa8b05914d5c458da0ea65b82ff7 this.ticking = false; gameprofilerfiller.exitEnter("entities"); boolean flag3 = true || !this.players.isEmpty() || !this.getForceLoadedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players -@@ -758,7 +762,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -760,7 +764,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } this.afterEntityTickingTasks.clear(); // Paper end @@ -320,7 +320,7 @@ index 455de3a3ce619a0b6116b9d84e0a1a05938bfea0..dc23aa8b05914d5c458da0ea65b82ff7 Entity entity2; -@@ -768,7 +772,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -770,7 +774,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } timings.tickEntities.stopTiming(); // Spigot diff --git a/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch index be49f6c5..1535238b 100644 --- a/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch +++ b/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch @@ -260,8 +260,30 @@ index 5c909b776e111d6bd9e2429f25fed121bb391219..d7e1c830764973c31dff8311a79e617d // Paper start long endTime = System.nanoTime(); long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime; +diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java +index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..f7e9a151ffbbb64cb8f8bc1d37516d7979277b17 100644 +--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java ++++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java +@@ -370,7 +370,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { + + if (blockposition1 != null) { + this.setPositionRotation(blockposition1, 0.0F, 0.0F); +- if (worldserver.getCubes(this)) { ++ if (!worldserver.collidesWithAnyBlockOrWorldBorder(this, this.getBoundingBox(), true, false)) { // Tuinity - make sure this is loaded + break; + } + } +@@ -378,7 +378,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { + } else { + this.setPositionRotation(blockposition, 0.0F, 0.0F); + +- while (!worldserver.getCubes(this) && this.locY() < 255.0D) { ++ while (worldserver.collidesWithAnyBlockOrWorldBorder(this, this.getBoundingBox(), true, false) && this.locY() < 255.0D) { // Tuinity - make sure this is loaded + this.setPosition(this.locX(), this.locY() + 1.0D, this.locZ()); + } + } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index dc23aa8b05914d5c458da0ea65b82ff729535471..97783a1b857e6c088fc3bab9226dc0fe648ac944 100644 +index 1658c03b70b5984c87d069276efcc7b8c8878431..86d1ce955c88530c043128a043fe75534077c665 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -474,6 +474,251 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -509,13 +531,26 @@ index dc23aa8b05914d5c458da0ea65b82ff729535471..97783a1b857e6c088fc3bab9226dc0fe + @Override + public boolean getCubes(@Nullable Entity entity, AxisAlignedBB axisalignedbb, Predicate predicate) { + if (entity instanceof net.minecraft.world.entity.decoration.EntityArmorStand && !entity.world.paperConfig.armorStandEntityLookups) return false; -+ return !this.collidesWithAnyBlockOrWorldBorder(entity, axisalignedbb, true, true) && !this.hardCollidesWithAnyEntities(entity, axisalignedbb, predicate); ++ return !this.collidesWithAnyBlockOrWorldBorder(entity, axisalignedbb, false, false) && !this.hardCollidesWithAnyEntities(entity, axisalignedbb, predicate); + } + // Tuinity end - optimise collision + // CraftBukkit start @Override public TileEntity getTileEntity(BlockPosition pos, boolean validate) { +diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java +index 2df8e914f66176e22aeddf8b94a83af5ea921d88..306d5ab69f8c4ca1c69f081e17cf9a4a2bee0446 100644 +--- a/src/main/java/net/minecraft/server/players/PlayerList.java ++++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -943,7 +943,7 @@ public abstract class PlayerList { + + worldserver1.getChunkProvider().addTicket(TicketType.POST_TELEPORT, new ChunkCoordIntPair(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper + entityplayer1.forceCheckHighPriority(); // Player +- while (avoidSuffocation && !worldserver1.getCubes(entityplayer1) && entityplayer1.locY() < 256.0D) { ++ while (avoidSuffocation && worldserver1.collidesWithAnyBlockOrWorldBorder(entityplayer1, entityplayer1.getBoundingBox(), true, false) && entityplayer1.locY() < 256.0D) { // Tuinity - make sure this is loaded + entityplayer1.setPosition(entityplayer1.locX(), entityplayer1.locY() + 1.0D, entityplayer1.locZ()); + } + // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java index b32b0ebf283a8face528ded0b845270953f536f1..c5ce10a55de6f611ec65f32382b0082f86e73fe3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/patches/Tuinity/patches/server/0026-Reduce-allocation-rate-from-crammed-entities.patch b/patches/Tuinity/patches/server/0026-Reduce-allocation-rate-from-crammed-entities.patch index a83c8207..6b6d2a16 100644 --- a/patches/Tuinity/patches/server/0026-Reduce-allocation-rate-from-crammed-entities.patch +++ b/patches/Tuinity/patches/server/0026-Reduce-allocation-rate-from-crammed-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reduce allocation rate from crammed entities diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index b0ee9e98d5f1e56c8d82e90dd7761c8ef79cfb1c..561905be42428855a07a2e63aca80d5dd63b22bf 100644 +index 21341eeb8148be119fbc1dd370c1beaf70a319e0..d933323d57a2a7ff283408f12d4650699f8177e7 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2973,7 +2973,11 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch b/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch index fcb5ba96..2e3c5c68 100644 --- a/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch +++ b/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve paper prevent moving into unloaded chunk check Check the AABB of the move diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 4a3f6f26da0d99ee2ff6942c2ff7d0595b53b684..3c316e60e0368c128ff370a5df84bbccce073861 100644 +index e6ea84ba098b4d77bc68e99862992a10ef4585b5..0b2a94d44a7321369dcb0a96529ff35366d98e09 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -568,7 +568,9 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch b/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch index cb6b112a..162f65f1 100644 --- a/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch +++ b/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Revert getChunkAt(Async) retaining chunks for long periods of diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 68e2f318780f613a85fc85e08d25f00e0c74ada3..8f77a04440a23707d05ad12e40e39af7c2963f69 100644 +index 4356d30353cc856c53731e9f10885d74a62027d2..01821015a0737dd770524bf77c8cb46d0ff6562e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -423,14 +423,7 @@ public class CraftWorld implements World { @@ -25,7 +25,7 @@ index 68e2f318780f613a85fc85e08d25f00e0c74ada3..8f77a04440a23707d05ad12e40e39af7 } // Paper start -@@ -2595,7 +2588,7 @@ public class CraftWorld implements World { +@@ -2596,7 +2589,7 @@ public class CraftWorld implements World { } return this.world.getChunkProvider().getChunkAtAsynchronously(x, z, gen, urgent).thenComposeAsync((either) -> { net.minecraft.world.level.chunk.Chunk chunk = (net.minecraft.world.level.chunk.Chunk) either.left().orElse(null); diff --git a/patches/Tuinity/patches/server/0033-Allow-Entities-to-be-removed-from-a-world-while-tick.patch b/patches/Tuinity/patches/server/0033-Allow-Entities-to-be-removed-from-a-world-while-tick.patch index 82e7c51c..b9bdfc92 100644 --- a/patches/Tuinity/patches/server/0033-Allow-Entities-to-be-removed-from-a-world-while-tick.patch +++ b/patches/Tuinity/patches/server/0033-Allow-Entities-to-be-removed-from-a-world-while-tick.patch @@ -9,7 +9,7 @@ issues where teleporting players across worlds while ticking. Also allows us to run mid tick while ticking entities. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe23dbb50b 100644 +index 86d1ce955c88530c043128a043fe75534077c665..fe32a457754d1dfcc37f7bf7ee6dd200ba7e323c 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -174,7 +174,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -30,7 +30,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe protected final PersistentRaid persistentRaid; private final ObjectLinkedOpenHashSet L; private boolean ticking; -@@ -946,13 +946,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -948,13 +948,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { } this.tickingEntities = true; @@ -46,7 +46,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe Entity entity1 = entity.getVehicle(); /* CraftBukkit start - We prevent spawning in general, so this butchering is not needed -@@ -988,7 +987,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -990,7 +989,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { gameprofilerfiller.enter("remove"); if (entity.dead) { this.removeEntityFromChunk(entity); @@ -55,7 +55,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe this.unregisterEntity(entity); } -@@ -996,6 +995,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -998,6 +997,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } timings.entityTick.stopTiming(); // Spigot @@ -63,7 +63,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe this.tickingEntities = false; // Paper start for (java.lang.Runnable run : this.afterEntityTickingTasks) { -@@ -1776,7 +1776,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1778,7 +1778,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { Entity entity = (Entity) iterator.next(); if (!(entity instanceof EntityPlayer)) { @@ -72,7 +72,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!"))); } -@@ -1804,6 +1804,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1806,6 +1806,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { public void unregisterEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot @@ -80,7 +80,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe // Paper start - fix entity registration issues if (entity instanceof EntityComplexPart) { // Usually this is a no-op for complex parts, and ID's should be removed, but go ahead and remove it anyways -@@ -1870,12 +1871,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1872,12 +1873,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.getScoreboard().a(entity); // CraftBukkit start - SPIGOT-5278 if (entity instanceof EntityDrowned) { @@ -100,7 +100,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe } new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid entity.valid = false; // CraftBukkit -@@ -1891,7 +1896,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1893,7 +1898,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { return; } // Paper end @@ -109,7 +109,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe if (!entity.isQueuedForRegister) { // Paper this.entitiesToAdd.add(entity); entity.isQueuedForRegister = true; // Paper -@@ -1899,6 +1904,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1901,6 +1906,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } else { entity.isQueuedForRegister = false; // Paper this.entitiesById.put(entity.getId(), entity); @@ -117,7 +117,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe if (entity instanceof EntityEnderDragon) { EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eJ(); int i = aentitycomplexpart.length; -@@ -1907,6 +1913,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1909,6 +1915,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { EntityComplexPart entitycomplexpart = aentitycomplexpart[j]; this.entitiesById.put(entitycomplexpart.getId(), entitycomplexpart); @@ -125,7 +125,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe } } -@@ -1931,12 +1938,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1933,12 +1940,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { // this.getChunkProvider().addEntity(entity); // Paper - moved down below valid=true // CraftBukkit start - SPIGOT-5278 if (entity instanceof EntityDrowned) { @@ -145,7 +145,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe } entity.valid = true; // CraftBukkit this.getChunkProvider().addEntity(entity); // Paper - from above to be below valid=true -@@ -1952,7 +1963,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1954,7 +1965,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } public void removeEntity(Entity entity) { @@ -154,7 +154,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!"))); } else { this.removeEntityFromChunk(entity); -@@ -2056,7 +2067,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2058,7 +2069,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (VoxelShapes.c(voxelshape, voxelshape1, OperatorBoolean.NOT_SAME)) { boolean wasTicking = this.tickingEntities; this.tickingEntities = true; // Paper @@ -165,7 +165,7 @@ index 97783a1b857e6c088fc3bab9226dc0fe648ac944..1999e82f1272c993677d4fb3884520fe while (iterator.hasNext()) { // CraftBukkit start - fix SPIGOT-6362 -@@ -2076,6 +2089,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2078,6 +2091,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { navigationabstract.b(blockposition); } } diff --git a/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch index 22b6702f..192eb5b1 100644 --- a/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 3c316e60e0368c128ff370a5df84bbccce073861..a5871955d487dbf6552d20e5559f2cb1427aeb3e 100644 +index 0b2a94d44a7321369dcb0a96529ff35366d98e09..40a7f69e5e14078977ef615abf3a0f1f61d76f9f 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -583,12 +583,14 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Tuinity/patches/server/0037-Separate-lookup-locking-from-state-access-in-UserCac.patch b/patches/Tuinity/patches/server/0037-Separate-lookup-locking-from-state-access-in-UserCac.patch index a7704d4b..2cab086e 100644 --- a/patches/Tuinity/patches/server/0037-Separate-lookup-locking-from-state-access-in-UserCac.patch +++ b/patches/Tuinity/patches/server/0037-Separate-lookup-locking-from-state-access-in-UserCac.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Separate lookup locking from state access in UserCache Prevent lookups from stalling simple state access/write calls diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java -index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a016a9c8a 100644 +index e813d4dd1a46734d16b42905808caa889811afcc..ee5c038c4ede294ec5b9b9b9f705ba46b6c7ac8c 100644 --- a/src/main/java/net/minecraft/server/players/UserCache.java +++ b/src/main/java/net/minecraft/server/players/UserCache.java -@@ -51,6 +51,11 @@ public class UserCache { +@@ -52,6 +52,11 @@ public class UserCache { private final File g; private final AtomicLong h = new AtomicLong(); @@ -21,7 +21,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a public UserCache(GameProfileRepository gameprofilerepository, File file) { this.e = gameprofilerepository; this.g = file; -@@ -58,6 +63,7 @@ public class UserCache { +@@ -59,6 +64,7 @@ public class UserCache { } private void a(UserCache.UserCacheEntry usercache_usercacheentry) { @@ -29,7 +29,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a GameProfile gameprofile = usercache_usercacheentry.a(); usercache_usercacheentry.a(this.d()); -@@ -72,6 +78,7 @@ public class UserCache { +@@ -73,6 +79,7 @@ public class UserCache { if (uuid != null) { this.d.put(uuid, usercache_usercacheentry); } @@ -37,7 +37,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a } -@@ -109,7 +116,7 @@ public class UserCache { +@@ -110,7 +117,7 @@ public class UserCache { } public void saveProfile(GameProfile gameprofile) { a(gameprofile); } // Paper - OBFHELPER @@ -46,7 +46,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); -@@ -126,8 +133,9 @@ public class UserCache { +@@ -127,8 +134,9 @@ public class UserCache { } @Nullable @@ -57,7 +57,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.c.get(s1); boolean flag = false; -@@ -141,10 +149,14 @@ public class UserCache { +@@ -142,10 +150,14 @@ public class UserCache { GameProfile gameprofile; if (usercache_usercacheentry != null) { @@ -72,7 +72,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a if (gameprofile != null) { this.a(gameprofile); flag = false; -@@ -156,6 +168,7 @@ public class UserCache { +@@ -157,6 +169,7 @@ public class UserCache { } return gameprofile; @@ -80,7 +80,7 @@ index 74b024a51f6c3ee88db730cbf97a24af66fa332b..66eee0998be2210042db8e6b537fa10a } // Paper start -@@ -290,7 +303,9 @@ public class UserCache { +@@ -291,7 +304,9 @@ public class UserCache { } private Stream a(int i) { diff --git a/patches/Tuinity/patches/server/0040-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/Tuinity/patches/server/0040-Fix-swamp-hut-cat-generation-deadlock.patch index e61dea5a..7cd5f29c 100644 --- a/patches/Tuinity/patches/server/0040-Fix-swamp-hut-cat-generation-deadlock.patch +++ b/patches/Tuinity/patches/server/0040-Fix-swamp-hut-cat-generation-deadlock.patch @@ -23,10 +23,10 @@ index 054a1a74c48a3d936e45cc6b62a9fd6a90663cbc..c8f529b3fd227ce3354f442038b27cd7 this.setPersistent(); } diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java -index 1077f988e16688f74c9e40d6da517c954cb06ecb..acacbf9617f99b97fc7fd2ba718775e1b3e429e9 100644 +index 07dcfd56af1014ad159828dd9ee2d89c2010b9f4..43418273f00f3703c7bd86586847d469af92c18f 100644 --- a/src/main/java/net/minecraft/world/level/StructureManager.java +++ b/src/main/java/net/minecraft/world/level/StructureManager.java -@@ -45,8 +45,13 @@ public class StructureManager { +@@ -46,8 +46,13 @@ public class StructureManager { // Paper start - remove structure streams public java.util.List> getFeatureStarts(SectionPosition sectionPosition, StructureGenerator structureGenerator) { @@ -41,7 +41,7 @@ index 1077f988e16688f74c9e40d6da517c954cb06ecb..acacbf9617f99b97fc7fd2ba718775e1 SectionPosition sectionPosition1 = SectionPosition.a(new ChunkCoordIntPair(curLong), 0); StructureStart structurestart = a(sectionPosition1, structureGenerator, getLevel().getChunkAt(sectionPosition1.a(), sectionPosition1.c(), ChunkStatus.STRUCTURE_STARTS)); if (structurestart != null && structurestart.e()) { -@@ -75,8 +80,12 @@ public class StructureManager { +@@ -76,8 +81,12 @@ public class StructureManager { } public StructureStart a(BlockPosition blockposition, boolean flag, StructureGenerator structuregenerator) { diff --git a/patches/Tuinity/patches/server/0047-Optimise-nearby-player-lookups.patch b/patches/Tuinity/patches/server/0047-Optimise-nearby-player-lookups.patch index 2077218c..83865e2f 100644 --- a/patches/Tuinity/patches/server/0047-Optimise-nearby-player-lookups.patch +++ b/patches/Tuinity/patches/server/0047-Optimise-nearby-player-lookups.patch @@ -97,7 +97,7 @@ index 3b727fcb05074dea7cc1689e8589d4f93d5ccceb..7897fe870234ddef12926d855a3f060f // Paper start - Chunk Prioritization public void queueHolderUpdate(PlayerChunk playerchunk) { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 1999e82f1272c993677d4fb3884520fe23dbb50b..61f60a957c298413e88df4e2e499855d6ada8204 100644 +index fe32a457754d1dfcc37f7bf7ee6dd200ba7e323c..31276fe09f0dc0bf59b97d45b2404e39478663bb 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -414,6 +414,107 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -208,7 +208,7 @@ index 1999e82f1272c993677d4fb3884520fe23dbb50b..61f60a957c298413e88df4e2e499855d // Add env and gen to constructor, WorldData -> WorldDataServer public WorldServer(MinecraftServer minecraftserver, Executor executor, Convertable.ConversionSession convertable_conversionsession, IWorldDataServer iworlddataserver, ResourceKey resourcekey, DimensionManager dimensionmanager, WorldLoadListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) { super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getMethodProfiler, false, flag, i, gen, env, executor); // Paper pass executor -@@ -772,6 +873,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -774,6 +875,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { public void doTick(BooleanSupplier booleansupplier) { GameProfilerFiller gameprofilerfiller = this.getMethodProfiler(); diff --git a/patches/Tuinity/patches/server/0050-Reduce-pathfinder-branches.patch b/patches/Tuinity/patches/server/0050-Reduce-pathfinder-branches.patch index d711e7e2..082c5a57 100644 --- a/patches/Tuinity/patches/server/0050-Reduce-pathfinder-branches.patch +++ b/patches/Tuinity/patches/server/0050-Reduce-pathfinder-branches.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Reduce pathfinder branches Reduce static path type detection to simple lazy-init fields diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 19936d615c14c4cb4eeddfaaf8438765f6c0b8b3..a96069c86ef5f5af4820436dd1f24e297bcca73f 100644 +index 1499dfb2f21294f91fb078d12e8e2e9e8b8b0382..d338b6d9d0f4d85a22286233121d9dba5f7ad8cf 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -361,7 +361,9 @@ public abstract class BlockBase { +@@ -362,7 +362,9 @@ public abstract class BlockBase { private final BlockBase.e o; private final BlockBase.e p; @Nullable @@ -20,7 +20,7 @@ index 19936d615c14c4cb4eeddfaaf8438765f6c0b8b3..a96069c86ef5f5af4820436dd1f24e29 protected BlockData(Block block, ImmutableMap, Comparable> immutablemap, MapCodec mapcodec) { super(block, immutablemap, mapcodec); -@@ -409,6 +411,8 @@ public abstract class BlockBase { +@@ -410,6 +412,8 @@ public abstract class BlockBase { this.a = new BlockBase.BlockData.Cache(this.p()); } this.shapeExceedsCube = this.a == null || this.a.c; // Tuinity - moved from actual method to here diff --git a/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch b/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch index e68149ef..9d2e9125 100644 --- a/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch +++ b/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add Velocity natives for encryption and compression This patch is licensed under the MIT license. See /licenses/MIT.md. diff --git a/pom.xml b/pom.xml -index 5d5cf802e6b6a0d90bf8326e7761c6d358b63b3f..2daa3e4ede5e941f6c4c1499144e7b04830517d1 100644 +index 3c60bf75dacd00cac2e35b0e597992ce0ce9448c..84bedea0b7db6929698503f78ede260f6ea3d56e 100644 --- a/pom.xml +++ b/pom.xml -@@ -149,6 +149,13 @@ +@@ -156,6 +156,13 @@ 4.8.47 test diff --git a/patches/Tuinity/patches/server/0052-Optimise-non-flush-packet-sending.patch b/patches/Tuinity/patches/server/0052-Optimise-non-flush-packet-sending.patch index a1694489..09a0dc8e 100644 --- a/patches/Tuinity/patches/server/0052-Optimise-non-flush-packet-sending.patch +++ b/patches/Tuinity/patches/server/0052-Optimise-non-flush-packet-sending.patch @@ -20,10 +20,10 @@ up on this optimisation before he came along. Locally this patch drops the entity tracker tick by a full 1.5x. diff --git a/pom.xml b/pom.xml -index 2daa3e4ede5e941f6c4c1499144e7b04830517d1..dad9981b1cd1ca8b27a45972188fd2b92f5146e7 100644 +index 84bedea0b7db6929698503f78ede260f6ea3d56e..de7da911833569c97b7f800a43ee7354d19677e2 100644 --- a/pom.xml +++ b/pom.xml -@@ -38,6 +38,13 @@ +@@ -50,6 +50,13 @@ ${project.version} compile @@ -37,7 +37,7 @@ index 2daa3e4ede5e941f6c4c1499144e7b04830517d1..dad9981b1cd1ca8b27a45972188fd2b9 io.papermc minecraft-server -@@ -105,11 +112,7 @@ +@@ -112,11 +119,7 @@ cleaner 1.0-SNAPSHOT diff --git a/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch b/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch index 10fbc0c2..abee0fe7 100644 --- a/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch +++ b/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch @@ -22,7 +22,7 @@ index e50731723d266ba65b2163df2e935afb8b013a93..a6736d15282715d920bab85eb92074cd } value.append("},"); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8f77a04440a23707d05ad12e40e39af7c2963f69..12f12aeeed79c657659b4bc8651488f1d73d3ef9 100644 +index 01821015a0737dd770524bf77c8cb46d0ff6562e..b0801ca77620753ab61dba62429ce76e95aaba8f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -720,6 +720,30 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0060-Rewrite-the-light-engine.patch b/patches/Tuinity/patches/server/0060-Rewrite-the-light-engine.patch index 85e2a746..1d4b96b2 100644 --- a/patches/Tuinity/patches/server/0060-Rewrite-the-light-engine.patch +++ b/patches/Tuinity/patches/server/0060-Rewrite-the-light-engine.patch @@ -4257,7 +4257,7 @@ index 9050ff7180f63c1f5756570446c4d0a8cc767779..9dd0f34aaede93ce4fdff9b41f76166e this.d &= ~(1 << k); if (nibblearray != null) { diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..b2cd13541bf3486a69e8f3e41e4c90cdc47180d1 100644 +index f7e9a151ffbbb64cb8f8bc1d37516d7979277b17..980063ada85d7e9660a625d67b2f6a82f80bf535 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -661,6 +661,185 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -4447,7 +4447,7 @@ index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..b2cd13541bf3486a69e8f3e41e4c90cd this.playerConnection.sendPacket(new PacketPlayOutUpdateHealth(this.getBukkitEntity().getScaledHealth(), this.foodData.getFoodLevel(), this.foodData.getSaturationLevel())); // CraftBukkit this.lastHealthSent = this.getHealth(); diff --git a/src/main/java/net/minecraft/server/level/LightEngineThreaded.java b/src/main/java/net/minecraft/server/level/LightEngineThreaded.java -index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d29883d75 100644 +index 0b80569648c1df01aab52d0b8d47028cda925d86..4d651cc21a9cb2fdeabff62d8978c3ec4abe2f68 100644 --- a/src/main/java/net/minecraft/server/level/LightEngineThreaded.java +++ b/src/main/java/net/minecraft/server/level/LightEngineThreaded.java @@ -2,6 +2,11 @@ package net.minecraft.server.level; @@ -4476,7 +4476,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d PlayerChunk playerChunk = playerChunkMap.getVisibleChunk(pair); if (playerChunk == null) { return false; -@@ -169,13 +175,218 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -169,13 +175,184 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { private volatile int f = 5; private final AtomicBoolean g = new AtomicBoolean(); @@ -4547,21 +4547,18 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d + this.queueUpdate(); + + return totalChunks; -+ } -+ + } + + protected final Long2IntOpenHashMap holdingChunks = new Long2IntOpenHashMap(); + protected final LongArrayList postWorkTicketRelease = new LongArrayList(); + + private void addLightWorkTicket(int chunkX, int chunkZ) { + final long coordinate = net.minecraft.server.MCUtil.getCoordinateKey(chunkX, chunkZ); -+ final int current = this.holdingChunks.putIfAbsent(coordinate, 1); ++ final int current = this.holdingChunks.addTo(coordinate, 1); + if (current == 0) { + final ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(coordinate); + this.theLightEngine.getWorld().getChunkProvider().addTicketAtLevel(TicketType.LIGHT_UPDATE, chunkPos, + net.minecraft.server.MCUtil.getTicketLevelFor(ChunkStatus.LIGHT), chunkPos); -+ this.theLightEngine.getWorld().getChunkProvider().tickDistanceManager(); -+ } else { -+ this.holdingChunks.put(coordinate, current + 1); + } + } + @@ -4585,45 +4582,14 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d + + this.addLightWorkTicket(chunkX, chunkZ); + -+ // light doesn't always load one radius neighbours... -+ // i.e if they get unloaded -+ boolean neighboursAtFeatures = true; -+ int targetNeighbourLevel = net.minecraft.server.MCUtil.getTicketLevelFor(ChunkStatus.LIGHT.getPreviousStatus()); -+ for (int dx = -1; dx <= 1; ++dx) { -+ for (int dz = -1; dz <= 1; ++dz) { -+ PlayerChunk neighbour = chunkMap.getUpdatingChunk(net.minecraft.server.MCUtil.getCoordinateKey(dx + chunkX, dz + chunkZ)); -+ ChunkStatus status; -+ if (neighbour == null || neighbour.getTicketLevel() > targetNeighbourLevel || -+ (status = neighbour.getChunkHolderStatus()) == null || -+ !status.isAtLeastStatus(ChunkStatus.LIGHT.getPreviousStatus())) { -+ neighboursAtFeatures = false; -+ break; -+ } -+ } -+ } -+ + PlayerChunk playerChunk = chunkMap.getUpdatingChunk(net.minecraft.server.MCUtil.getCoordinateKey(chunkX, chunkZ)); + ChunkStatus holderStatus; -+ if (!neighboursAtFeatures || playerChunk == null || playerChunk.getTicketLevel() > targetLevel || ++ if (playerChunk == null || playerChunk.getTicketLevel() > targetLevel || + (holderStatus = playerChunk.getChunkHolderStatus()) == null || + !holderStatus.isAtLeastStatus(ChunkStatus.LIGHT)) { + CompletableFuture ret = new CompletableFuture<>(); + -+ int[] loads = new int[1]; -+ int requiredLoads = 3 * 3; -+ java.util.function.Consumer onLoad = (chunk) -> { -+ if (++loads[0] == requiredLoads) { -+ ret.complete(this.getChunk(chunkX, chunkZ)); -+ } -+ }; -+ -+ for (int dx = -1; dx <= 1; ++dx) { -+ for (int dz = -1; dz <= 1; ++dz) { -+ chunkProvider.getChunkAtAsynchronously(chunkX + dx, chunkZ + dz, -+ (dx | dz) == 0 ? ChunkStatus.LIGHT : ChunkStatus.LIGHT.getPreviousStatus(), -+ true, false, onLoad); -+ } -+ } ++ chunkProvider.getChunkAtAsynchronously(chunkX, chunkZ, ChunkStatus.LIGHT, true, false, ret::complete); + + return ret; + } @@ -4660,8 +4626,8 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d + }); + } + }, this.playerChunkMap.mainInvokingExecutor); - } - ++ } ++ + // override things from superclass + + @Override @@ -4695,7 +4661,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d public void close() {} @Override -@@ -192,6 +403,15 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -192,6 +369,15 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { public void a(BlockPosition blockposition) { BlockPosition blockposition1 = blockposition.immutableCopy(); @@ -4711,7 +4677,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d this.a(blockposition.getX() >> 4, blockposition.getZ() >> 4, LightEngineThreaded.Update.POST_UPDATE, SystemUtils.a(() -> { super.a(blockposition1); }, () -> { -@@ -200,6 +420,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -200,6 +386,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { } protected void a(ChunkCoordIntPair chunkcoordintpair) { @@ -4723,7 +4689,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d this.a(chunkcoordintpair.x, chunkcoordintpair.z, () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -224,6 +449,14 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -224,6 +415,14 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void a(SectionPosition sectionposition, boolean flag) { @@ -4738,7 +4704,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d this.a(sectionposition.a(), sectionposition.c(), () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -235,6 +468,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -235,6 +434,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void a(ChunkCoordIntPair chunkcoordintpair, boolean flag) { @@ -4750,7 +4716,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d this.a(chunkcoordintpair.x, chunkcoordintpair.z, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { super.a(chunkcoordintpair, flag); }, () -> { -@@ -244,6 +482,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -244,6 +448,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void a(EnumSkyBlock enumskyblock, SectionPosition sectionposition, @Nullable NibbleArray nibblearray, boolean flag) { @@ -4762,7 +4728,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d this.a(sectionposition.a(), sectionposition.c(), () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -253,6 +496,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -253,6 +462,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { })); } @@ -4770,7 +4736,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d private void a(int i, int j, LightEngineThreaded.Update lightenginethreaded_update, Runnable runnable) { this.a(i, j, this.d.c(ChunkCoordIntPair.pair(i, j)), lightenginethreaded_update, runnable); } -@@ -265,6 +509,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -265,6 +475,11 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @Override public void b(ChunkCoordIntPair chunkcoordintpair, boolean flag) { @@ -4782,7 +4748,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d this.a(chunkcoordintpair.x, chunkcoordintpair.z, () -> { return 0; }, LightEngineThreaded.Update.PRE_UPDATE, SystemUtils.a(() -> { -@@ -277,6 +526,35 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -277,6 +492,35 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { public CompletableFuture a(IChunkAccess ichunkaccess, boolean flag) { ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos(); @@ -4818,7 +4784,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d // Paper start //ichunkaccess.b(false); // Don't need to disable this long pair = chunkcoordintpair.pair(); -@@ -324,7 +602,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -324,7 +568,7 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { } public void queueUpdate() { @@ -4827,7 +4793,7 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d this.b.a((() -> { // Paper - decompile error this.b(); this.g.set(false); -@@ -338,17 +616,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { +@@ -338,17 +582,36 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { private final java.util.List pre = new java.util.ArrayList<>(); private final java.util.List post = new java.util.ArrayList<>(); private void b() { @@ -4930,7 +4896,7 @@ index 1122df50a7f9cbc489e8da7a91e9af73476eb148..3738c51b5e673c439d88a7ef7f4614f3 // Tuinity end - delay chunk unloads public static TicketType a(String s, Comparator comparator) { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 61f60a957c298413e88df4e2e499855d6ada8204..53e343a351ff19912c04bfeb6dc731947c9fc3d8 100644 +index 31276fe09f0dc0bf59b97d45b2404e39478663bb..e67924369f778b16a2ee8d29c571756c1be1ebf9 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -515,6 +515,13 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -4948,10 +4914,10 @@ index 61f60a957c298413e88df4e2e499855d6ada8204..53e343a351ff19912c04bfeb6dc73194 public WorldServer(MinecraftServer minecraftserver, Executor executor, Convertable.ConversionSession convertable_conversionsession, IWorldDataServer iworlddataserver, ResourceKey resourcekey, DimensionManager dimensionmanager, WorldLoadListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) { super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getMethodProfiler, false, flag, i, gen, env, executor); // Paper pass executor diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index a96069c86ef5f5af4820436dd1f24e297bcca73f..0b852fa247c65cb1e889ad4e55886e256f89a763 100644 +index d338b6d9d0f4d85a22286233121d9dba5f7ad8cf..6124b56d935386784371422960a07d518f848cf3 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -382,6 +382,7 @@ public abstract class BlockBase { +@@ -383,6 +383,7 @@ public abstract class BlockBase { this.n = blockbase_info.s; this.o = blockbase_info.t; this.p = blockbase_info.u; @@ -4959,7 +4925,7 @@ index a96069c86ef5f5af4820436dd1f24e297bcca73f..0b852fa247c65cb1e889ad4e55886e25 } // Paper start - impl cached craft block data, lazy load to fix issue with loading at the wrong time private org.bukkit.craftbukkit.block.data.CraftBlockData cachedCraftBlockData; -@@ -404,6 +405,19 @@ public abstract class BlockBase { +@@ -405,6 +406,19 @@ public abstract class BlockBase { } // Tuinity end @@ -4979,7 +4945,7 @@ index a96069c86ef5f5af4820436dd1f24e297bcca73f..0b852fa247c65cb1e889ad4e55886e25 public void a() { this.fluid = this.getBlock().d(this.p()); // Paper - moved from getFluid() this.isTicking = this.getBlock().isTicking(this.p()); // Paper - moved from isTicking() -@@ -413,6 +427,34 @@ public abstract class BlockBase { +@@ -414,6 +428,34 @@ public abstract class BlockBase { this.shapeExceedsCube = this.a == null || this.a.c; // Tuinity - moved from actual method to here this.staticPathType = null; // Tuinity - cache static path type this.neighbourOverridePathType = null; // Tuinity - cache static path types @@ -5014,7 +4980,7 @@ index a96069c86ef5f5af4820436dd1f24e297bcca73f..0b852fa247c65cb1e889ad4e55886e25 } -@@ -741,9 +783,9 @@ public abstract class BlockBase { +@@ -742,9 +784,9 @@ public abstract class BlockBase { private static final int f = EnumBlockSupport.values().length; protected final boolean a; private final boolean g; @@ -5186,10 +5152,10 @@ index 43b8361e8ad0a8c429406cb6ff538020f670bdbd..bb63ed58e1eaeb474e99992e39d811b2 IBlockAccess getWorld(); diff --git a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce8b012522 100644 +index 0fec15e141051863dbf51a2b3e1ace5028cd2fc1..d7757e60402be9939fc2d90ad79b2bb76c5249ca 100644 --- a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java +++ b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -@@ -58,6 +58,7 @@ public class NibbleArray { +@@ -59,6 +59,7 @@ public class NibbleArray { boolean poolSafe = false; public java.lang.Runnable cleaner; private void registerCleaner() { @@ -5197,7 +5163,7 @@ index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce if (!poolSafe) { cleaner = MCUtil.registerCleaner(this, this.a, NibbleArray::releaseBytes); } else { -@@ -65,7 +66,7 @@ public class NibbleArray { +@@ -66,7 +67,7 @@ public class NibbleArray { } } // Paper end @@ -5206,7 +5172,7 @@ index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce public NibbleArray() {} -@@ -76,7 +77,7 @@ public class NibbleArray { +@@ -77,7 +78,7 @@ public class NibbleArray { } public NibbleArray(byte[] abyte, boolean isSafe) { this.a = abyte; @@ -5215,7 +5181,7 @@ index 3a85a89be2a736e5b6b7f08032f4becd6bb39ed1..d32369d9a555fd7595df175e56f853ce registerCleaner(); // Paper end if (abyte.length != 2048) { -@@ -164,7 +165,7 @@ public class NibbleArray { +@@ -165,7 +166,7 @@ public class NibbleArray { public NibbleArray copy() { return this.b(); } // Paper - OBFHELPER public NibbleArray b() { diff --git a/patches/Tuinity/patches/server/0061-Optimise-WorldServer-notify.patch b/patches/Tuinity/patches/server/0061-Optimise-WorldServer-notify.patch index 46822c57..a883dd24 100644 --- a/patches/Tuinity/patches/server/0061-Optimise-WorldServer-notify.patch +++ b/patches/Tuinity/patches/server/0061-Optimise-WorldServer-notify.patch @@ -111,10 +111,10 @@ index e30995df572df6135e159d34cd7646fd08db4a5a..b48d419f82f0d9df1f8848d95066bad7 } // Tuiniy end diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 53e343a351ff19912c04bfeb6dc731947c9fc3d8..9061a2b9bffc7f4737871225a678c64f5799e2b8 100644 +index e67924369f778b16a2ee8d29c571756c1be1ebf9..a278a5ba17a510f784c798ad7f7f47bf7ccc301e 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1083,6 +1083,15 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1085,6 +1085,15 @@ public class WorldServer extends World implements GeneratorAccessSeed { gameprofilerfiller.enter("checkDespawn"); if (!entity.dead) { entity.checkDespawn(); @@ -130,7 +130,7 @@ index 53e343a351ff19912c04bfeb6dc731947c9fc3d8..9061a2b9bffc7f4737871225a678c64f } gameprofilerfiller.exit(); -@@ -1105,7 +1114,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1107,7 +1116,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.removeEntityFromChunk(entity); this.entitiesById.remove(entity.getId()); // Tuinity this.unregisterEntity(entity); @@ -145,7 +145,7 @@ index 53e343a351ff19912c04bfeb6dc731947c9fc3d8..9061a2b9bffc7f4737871225a678c64f gameprofilerfiller.exit(); } -@@ -1515,6 +1531,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1517,6 +1533,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { int i = MathHelper.floor(entity.locX() / 16.0D); int j = Math.min(15, Math.max(0, MathHelper.floor(entity.locY() / 16.0D))); // Paper - stay consistent with chunk add/remove behavior int k = MathHelper.floor(entity.locZ() / 16.0D); @@ -158,7 +158,7 @@ index 53e343a351ff19912c04bfeb6dc731947c9fc3d8..9061a2b9bffc7f4737871225a678c64f if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) { // Paper start - remove entity if its in a chunk more correctly. -@@ -1524,6 +1546,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1526,6 +1548,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // Paper end @@ -171,7 +171,7 @@ index 53e343a351ff19912c04bfeb6dc731947c9fc3d8..9061a2b9bffc7f4737871225a678c64f if (entity.inChunk && this.isChunkLoaded(entity.chunkX, entity.chunkZ)) { this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY); } -@@ -1537,6 +1565,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1539,6 +1567,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { } else { this.getChunkAt(i, k).a(entity); } @@ -183,7 +183,7 @@ index 53e343a351ff19912c04bfeb6dc731947c9fc3d8..9061a2b9bffc7f4737871225a678c64f } this.getMethodProfiler().exit(); -@@ -1999,9 +2032,64 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2001,9 +2034,64 @@ public class WorldServer extends World implements GeneratorAccessSeed { // Tuinity end } new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid @@ -248,7 +248,7 @@ index 53e343a351ff19912c04bfeb6dc731947c9fc3d8..9061a2b9bffc7f4737871225a678c64f private void registerEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot // Paper start - don't double enqueue entity registration -@@ -2182,16 +2270,26 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2184,16 +2272,26 @@ public class WorldServer extends World implements GeneratorAccessSeed { VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition); if (VoxelShapes.c(voxelshape, voxelshape1, OperatorBoolean.NOT_SAME)) { diff --git a/patches/Tuinity/patches/server/0063-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/Tuinity/patches/server/0063-Send-full-pos-packets-for-hard-colliding-entities.patch index df132f29..23c36cf2 100644 --- a/patches/Tuinity/patches/server/0063-Send-full-pos-packets-for-hard-colliding-entities.patch +++ b/patches/Tuinity/patches/server/0063-Send-full-pos-packets-for-hard-colliding-entities.patch @@ -26,10 +26,10 @@ index 1fb7a0e44cdbf563a7858003806a57a5cbda445b..edb9b246bf327f67a8500f77f81b46eb public final String worldName; diff --git a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -index 8d792f96ca655c7f5d66d19af9c37efbf40fa556..a1512ee8422fa39a95e4f19c86fe71b77af54ca0 100644 +index 55637a74c6badf8b06512c36ae273404cc05d1be..67ca28463f5add7c18f7f16b918c3f36f8feeeda 100644 --- a/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/level/EntityTrackerEntry.java -@@ -186,7 +186,7 @@ public class EntityTrackerEntry { +@@ -185,7 +185,7 @@ public class EntityTrackerEntry { // Paper end - remove allocation of Vec3D here boolean flag4 = k < -32768L || k > 32767L || l < -32768L || l > 32767L || i1 < -32768L || i1 > 32767L; diff --git a/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch b/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch index 6bc84e3e..049776d4 100644 --- a/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch +++ b/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch @@ -9,7 +9,7 @@ paper placed their logic. So it wont correctly set in this case. Fix by moving it to a different place. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 2df8e914f66176e22aeddf8b94a83af5ea921d88..56c9db09d6972084294c5e3bcbce52a9021f018a 100644 +index 306d5ab69f8c4ca1c69f081e17cf9a4a2bee0446..e9ff47b239372bd628097e6e7f43fa9bd5f4d73d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -179,6 +179,7 @@ public abstract class PlayerList { diff --git a/patches/Tuinity/patches/server/0069-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/Tuinity/patches/server/0069-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 03639ab8..0e91edf2 100644 --- a/patches/Tuinity/patches/server/0069-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/Tuinity/patches/server/0069-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -9,7 +9,7 @@ chunk through it. This should also be OK from a leak prevention/ state desync POV because the TE is getting unloaded anyways. diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index b2cd13541bf3486a69e8f3e41e4c90cdc47180d1..553ad54e5d657a840d3dbd3b48a8b21f1855c18a 100644 +index 980063ada85d7e9660a625d67b2f6a82f80bf535..bffc0824151a6597d91cd854b343b2586f6b9322 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -1718,6 +1718,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -31,10 +31,10 @@ index b2cd13541bf3486a69e8f3e41e4c90cdc47180d1..553ad54e5d657a840d3dbd3b48a8b21f public void broadcastCarriedItem() { if (!this.e) { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 9061a2b9bffc7f4737871225a678c64f5799e2b8..ea71586563ceaf241c5a9f443805ec917a286690 100644 +index a278a5ba17a510f784c798ad7f7f47bf7ccc301e..2d207dbad7752526c9a0b212979043c009e66386 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1906,10 +1906,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1908,10 +1908,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { // Spigot Start for (TileEntity tileentity : chunk.getTileEntities().values()) { if (tileentity instanceof net.minecraft.world.IInventory) { diff --git a/patches/Tuinity/patches/server/0072-Optimise-snow-ice-in-chunk-ticking.patch b/patches/Tuinity/patches/server/0072-Optimise-snow-ice-in-chunk-ticking.patch index bc7f842d..42ba8e09 100644 --- a/patches/Tuinity/patches/server/0072-Optimise-snow-ice-in-chunk-ticking.patch +++ b/patches/Tuinity/patches/server/0072-Optimise-snow-ice-in-chunk-ticking.patch @@ -11,10 +11,10 @@ the biome methods, removing the need to invoke a chunk lookup. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ea71586563ceaf241c5a9f443805ec917a286690..c9d03c7025b05a496b6860718f6b307a4ff658f8 100644 +index 2d207dbad7752526c9a0b212979043c009e66386..84b4b7524064a4f0c175f34778e4e0d8004888ea 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1196,6 +1196,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1198,6 +1198,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { private final BlockPosition.MutableBlockPosition chunkTickMutablePosition = new BlockPosition.MutableBlockPosition(); private final com.destroystokyo.paper.util.math.ThreadUnsafeRandom randomTickRandom = new com.destroystokyo.paper.util.math.ThreadUnsafeRandom(); // Paper end @@ -24,7 +24,7 @@ index ea71586563ceaf241c5a9f443805ec917a286690..c9d03c7025b05a496b6860718f6b307a public void a(Chunk chunk, int i) { final int randomTickSpeed = i; // Paper ChunkCoordIntPair chunkcoordintpair = chunk.getPos(); -@@ -1233,28 +1236,32 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1235,28 +1238,32 @@ public class WorldServer extends World implements GeneratorAccessSeed { gameprofilerfiller.exitEnter("iceandsnow"); if (!this.paperConfig.disableIceAndSnow && this.randomTickRandom.nextInt(16) == 0) { // Paper - Disable ice and snow // Paper - optimise random ticking // Paper start - optimise chunk ticking diff --git a/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch b/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch index 625cd497..6f7f93dc 100644 --- a/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch +++ b/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch @@ -1223,7 +1223,7 @@ index 9e96376a1d710c0ba7a763868b23fc586253e1a8..fe040615ff03478a20cdf8376f89a6b7 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/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 553ad54e5d657a840d3dbd3b48a8b21f1855c18a..59989db6dcf96a8ab5a75775bb588c31cec3418a 100644 +index bffc0824151a6597d91cd854b343b2586f6b9322..62b95dcba8606330fbb3239e74c5eaf8baa3c51d 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -261,7 +261,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -1554,7 +1554,7 @@ index 1e627159cbb35fac47d4d158299ec3da7c1f9bf5..d7eede51f1c4ebbe8e00b16efd6331c8 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 56c9db09d6972084294c5e3bcbce52a9021f018a..499b516330f3f3a48fb64802f2e8c1b7c9684f4d 100644 +index e9ff47b239372bd628097e6e7f43fa9bd5f4d73d..0b5cf23932c3c626d8805d4db97d2bbab63634cf 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -270,7 +270,7 @@ public abstract class PlayerList { @@ -1739,10 +1739,10 @@ index 3fe1508b091e1fd0325eae50138d02fa6445c9ff..a19a26a88f247d359354902efeece992 return new Vec3D((double) baseblockposition.getX() + 0.5D, (double) baseblockposition.getY() + 0.5D, (double) baseblockposition.getZ() + 0.5D); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 12f12aeeed79c657659b4bc8651488f1d73d3ef9..b393490231ea00af15d883336a07de6cca642195 100644 +index b0801ca77620753ab61dba62429ce76e95aaba8f..91005e112950d79e1120e5595570970b94cd3c67 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2637,14 +2637,14 @@ public class CraftWorld implements World { +@@ -2638,14 +2638,14 @@ public class CraftWorld implements World { throw new IllegalArgumentException("View distance " + viewDistance + " is out of range of [2, 32]"); } PlayerChunkMap chunkMap = getHandle().getChunkProvider().playerChunkMap; @@ -1759,7 +1759,7 @@ index 12f12aeeed79c657659b4bc8651488f1d73d3ef9..b393490231ea00af15d883336a07de6c } @Override -@@ -2653,11 +2653,22 @@ public class CraftWorld implements World { +@@ -2654,11 +2654,22 @@ public class CraftWorld implements World { throw new IllegalArgumentException("View distance " + viewDistance + " is out of range of [2, 32]"); } PlayerChunkMap chunkMap = getHandle().getChunkProvider().playerChunkMap; diff --git a/patches/Tuinity/patches/server/0077-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch b/patches/Tuinity/patches/server/0077-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch index ed8150f4..c4dcd849 100644 --- a/patches/Tuinity/patches/server/0077-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch +++ b/patches/Tuinity/patches/server/0077-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch @@ -8,10 +8,10 @@ that occured from the getChunkAt call, we would either add to the wrong chunk or add to both chunks! not good. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index c9d03c7025b05a496b6860718f6b307a4ff658f8..655e994376dcc65f4fd76e182d4ef5bc20142063 100644 +index 84b4b7524064a4f0c175f34778e4e0d8004888ea..fcf9af44702f34d75185eee0b3259fe0e57001b1 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1570,7 +1570,35 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1572,7 +1572,35 @@ public class WorldServer extends World implements GeneratorAccessSeed { entity.inChunk = false; } else { diff --git a/patches/Tuinity/patches/server/0079-Do-not-update-TE-s-in-generating-chunks.patch b/patches/Tuinity/patches/server/0079-Do-not-update-TE-s-in-generating-chunks.patch new file mode 100644 index 00000000..83ebd5c5 --- /dev/null +++ b/patches/Tuinity/patches/server/0079-Do-not-update-TE-s-in-generating-chunks.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Spottedleaf +Date: Thu, 8 Apr 2021 06:22:15 -0700 +Subject: [PATCH] Do not update TE's in generating chunks + +It might cause a deadlock with the getType call to the +chunk. + +diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.java +index 9b82ff37faaafc3a799413f6949fb88a993aa9a0..13983f3271d33ab6e4c7030de5865edbd7b0cd8a 100644 +--- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.java ++++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.java +@@ -374,7 +374,13 @@ public class DefinedStructure { + if (pair1.getSecond() != null) { + tileentity = worldaccess.getTileEntity(blockposition3); + if (tileentity != null) { ++ // Tuinity start - do not update TE's in generating chunks, it might cause a deadlock ++ if (!(worldaccess instanceof World)) { ++ tileentity.invalidateBlockCache(); ++ } else { ++ // Tuinity end - do not update TE's in generating chunks, it might cause a deadlock + tileentity.update(); ++ } // Tuinity - do not update TE's in generating chunks, it might cause a deadlock + } + } + } diff --git a/patches/Tuinity/patches/server/0080-Stop-large-move-vectors-in-player-packet-handling-fr.patch b/patches/Tuinity/patches/server/0080-Stop-large-move-vectors-in-player-packet-handling-fr.patch new file mode 100644 index 00000000..a9439e7d --- /dev/null +++ b/patches/Tuinity/patches/server/0080-Stop-large-move-vectors-in-player-packet-handling-fr.patch @@ -0,0 +1,64 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Spottedleaf +Date: Thu, 8 Apr 2021 06:51:07 -0700 +Subject: [PATCH] Stop large move vectors in player packet handling from + killing the server + +Looks like we need to check three vectors, not two. fun. + +diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java +index 40a7f69e5e14078977ef615abf3a0f1f61d76f9f..83ad913e46f44aabb41b7e441cba2ef2f7bcbc46 100644 +--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java ++++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java +@@ -540,6 +540,12 @@ public class PlayerConnection implements PacketListenerPlayIn { + double currDeltaZ = toZ - fromZ; + double d10 = Math.max(d6 * d6 + d7 * d7 + d8 * d8, (currDeltaX * currDeltaX + currDeltaY * currDeltaY + currDeltaZ * currDeltaZ) - 1); + // Paper end - fix large move vectors killing the server ++ // Tuinity start - fix large move vectors killing the server ++ double otherFieldX = d3 - this.v; ++ double otherFieldY = d4 - this.w - 1.0E-6D; ++ double otherFieldZ = d5 - this.x; ++ d10 = Math.max(d10, (otherFieldX * otherFieldX + otherFieldY * otherFieldY + otherFieldZ * otherFieldZ) - 1); ++ // Tuinity end - fix large move vectors killing the server + + + // CraftBukkit start - handle custom speeds and skipped ticks +@@ -586,9 +592,9 @@ public class PlayerConnection implements PacketListenerPlayIn { + //boolean flag = worldserver.getCubes(entity, entity.getBoundingBox().shrink(0.0625D)); // Tuinity - replace with different checks + AxisAlignedBB oldBox = entity.getBoundingBox(); // Tuinity - copy from player movement packet + +- d6 = d3 - this.v; +- d7 = d4 - this.w - 1.0E-6D; +- d8 = d5 - this.x; ++ d6 = d3 - this.v; // Tuinity - diff on change, used for checking large move vectors above ++ d7 = d4 - this.w - 1.0E-6D; // Tuinity - diff on change, used for checking large move vectors above ++ d8 = d5 - this.x; // Tuinity - diff on change, used for checking large move vectors above + entity.move(EnumMoveType.PLAYER, new Vec3D(d6, d7, d8)); + boolean didCollide = toX != entity.locX() || toY != entity.locY() || toZ != entity.locZ(); // Tuinity - needed here as the difference in Y can be reset - also note: this is only a guess at whether collisions took place, floating point errors can make this true when it shouldn't be... + double d11 = d7; +@@ -1293,6 +1299,12 @@ public class PlayerConnection implements PacketListenerPlayIn { + double currDeltaZ = toZ - prevZ; + double d11 = Math.max(d7 * d7 + d8 * d8 + d9 * d9, (currDeltaX * currDeltaX + currDeltaY * currDeltaY + currDeltaZ * currDeltaZ) - 1); + // Paper end - fix large move vectors killing the server ++ // Tuinity start - fix large move vectors killing the server ++ double otherFieldX = d4 - this.o; ++ double otherFieldY = d5 - this.p; ++ double otherFieldZ = d6 - this.q; ++ d11 = Math.max(d11, (otherFieldX * otherFieldX + otherFieldY * otherFieldY + otherFieldZ * otherFieldZ) - 1); ++ // Tuinity end - fix large move vectors killing the server + + if (this.player.isSleeping()) { + if (d11 > 1.0D) { +@@ -1344,9 +1356,9 @@ public class PlayerConnection implements PacketListenerPlayIn { + + AxisAlignedBB axisalignedbb = this.player.getBoundingBox(); // Tuinity - diff on change, should be old AABB + +- d7 = d4 - this.o; +- d8 = d5 - this.p; +- d9 = d6 - this.q; ++ d7 = d4 - this.o; // Tuinity - diff on change, used for checking large move vectors above ++ d8 = d5 - this.p; // Tuinity - diff on change, used for checking large move vectors above ++ d9 = d6 - this.q; // Tuinity - diff on change, used for checking large move vectors above + boolean flag = d8 > 0.0D; + + if (this.player.isOnGround() && !packetplayinflying.b() && flag) { diff --git a/patches/Tuinity/patches/server/0081-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/Tuinity/patches/server/0081-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch new file mode 100644 index 00000000..2c9e2019 --- /dev/null +++ b/patches/Tuinity/patches/server/0081-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Spottedleaf +Date: Sun, 11 Apr 2021 02:58:48 -0700 +Subject: [PATCH] Don't read neighbour chunk data off disk when converting + chunks + +Lighting is purged on update anyways, so let's not add more +into the conversion process + +diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/IChunkLoader.java b/src/main/java/net/minecraft/world/level/chunk/storage/IChunkLoader.java +index 3c532d3996dfc734ec07181701280b6072bff55f..21c8530c77161b5f8cfd0bae3126c8fd394dcae2 100644 +--- a/src/main/java/net/minecraft/world/level/chunk/storage/IChunkLoader.java ++++ b/src/main/java/net/minecraft/world/level/chunk/storage/IChunkLoader.java +@@ -46,6 +46,7 @@ public class IChunkLoader implements AutoCloseable { + + // CraftBukkit start + private boolean check(ChunkProviderServer cps, int x, int z) throws IOException { ++ if (true) return false; // Tuinity - this isn't even needed anymore, light is purged updating to 1.14+, why are we holding up the conversion process reading chunk data off disk + ChunkCoordIntPair pos = new ChunkCoordIntPair(x, z); + if (cps != null) { + //com.google.common.base.Preconditions.checkState(org.bukkit.Bukkit.isPrimaryThread(), "primary thread"); // Paper - this function is now MT-Safe diff --git a/patches/api/0001-Modify-POM.patch b/patches/api/0001-Modify-POM.patch index a1d55aaf..07567b8c 100644 --- a/patches/api/0001-Modify-POM.patch +++ b/patches/api/0001-Modify-POM.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Modify POM diff --git a/pom.xml b/pom.xml -index 6c200882954adc4831307f3d6dfa3202571fb30b..4aefa793f1db26908e5476f03d89858b5925e3cb 100644 +index 6c200882954adc4831307f3d6dfa3202571fb30b..1bf7c7d0a192f4b05611075537a4d718799190a1 100644 --- a/pom.xml +++ b/pom.xml @@ -3,18 +3,18 @@ @@ -52,3 +52,45 @@ index 6c200882954adc4831307f3d6dfa3202571fb30b..4aefa793f1db26908e5476f03d89858b sonatype +@@ -67,7 +80,7 @@ + + it.unimi.dsi + fastutil +- 8.2.2 ++ 8.5.4 + provided + + +@@ -114,7 +127,7 @@ + + org.yaml + snakeyaml +- 1.27 ++ 1.28 + compile + + +@@ -128,7 +141,7 @@ + + org.slf4j + slf4j-api +- 1.7.25 ++ 1.7.30 + compile + + +@@ -154,12 +167,12 @@ + + org.ow2.asm + asm +- 9.0 ++ 9.1 + + + org.ow2.asm + asm-commons +- 9.0 ++ 9.1 + + + diff --git a/patches/api/0003-Add-GameProfileLookupEvent.patch b/patches/api/0003-Add-GameProfileLookupEvent.patch index 4585c04c..83177c1f 100644 --- a/patches/api/0003-Add-GameProfileLookupEvent.patch +++ b/patches/api/0003-Add-GameProfileLookupEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add GameProfileLookupEvent diff --git a/pom.xml b/pom.xml -index 4aefa793f1db26908e5476f03d89858b5925e3cb..42004d8b2028a2bf62435b708aa7a47cba223f0d 100644 +index 1bf7c7d0a192f4b05611075537a4d718799190a1..ce3676f8f8db8cff686d4cdf47b496d51e0af7df 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,10 @@ diff --git a/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch b/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch index 5595fb02..33f097e6 100644 --- a/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch +++ b/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add NBT API as a first-class lib diff --git a/pom.xml b/pom.xml -index 42004d8b2028a2bf62435b708aa7a47cba223f0d..9d1e72fa2e5c1fd46c341e7c76be85b8f6ef63e0 100644 +index ce3676f8f8db8cff686d4cdf47b496d51e0af7df..4689aa0788afb7fe5b7c8d1a906373bef2744e91 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,11 @@ @@ -22,7 +22,7 @@ index 42004d8b2028a2bf62435b708aa7a47cba223f0d..9d1e72fa2e5c1fd46c341e7c76be85b8 @@ -185,6 +190,11 @@ asm-commons - 9.0 + 9.1 + + de.tr7zw diff --git a/patches/server/0001-Modify-POM.patch b/patches/server/0001-Modify-POM.patch index d2091116..dd35ca08 100644 --- a/patches/server/0001-Modify-POM.patch +++ b/patches/server/0001-Modify-POM.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Modify POM diff --git a/pom.xml b/pom.xml -index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f584f2a64 100644 +index cea712b94bb32ccda2895670859839d660bd0748..d16dce599382f285685e0990a63dd1bbadc62cac 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -23,7 +23,7 @@ index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f -@@ -19,17 +19,26 @@ +@@ -19,12 +19,21 @@ @@ -44,6 +44,10 @@ index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f + + + + + + +@@ -40,8 +49,8 @@ @@ -54,16 +58,16 @@ index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f ${project.version} compile -@@ -44,7 +53,7 @@ +@@ -56,7 +65,7 @@ io.netty netty-all - 4.1.50.Final -+ 4.1.59.Final ++ 4.1.63.Final -@@ -61,7 +70,7 @@ +@@ -73,7 +82,7 @@ org.jline jline-terminal-jansi @@ -72,30 +76,7 @@ index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f runtime -@@ -144,14 +153,14 @@ +@@ -151,14 +160,14 @@ org.hamcrest hamcrest-library @@ -108,11 +89,11 @@ index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f io.github.classgraph classgraph - 4.8.47 -+ 4.8.98 ++ 4.8.104 test -@@ -175,6 +184,12 @@ +@@ -182,6 +191,12 @@ master-SNAPSHOT compile @@ -125,7 +106,15 @@ index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f -@@ -188,19 +203,32 @@ +@@ -190,27 +205,37 @@ + jitpack.io + https://jitpack.io + +- +- +- + + purpur-snapshots https://repo.pl3x.net/ @@ -161,3 +150,12 @@ index 9d9ea5cff8a07c445837de74b3f887316cd79772..67c70c38214f39739d56121dde76a12f .. +@@ -385,7 +410,7 @@ + + org.jetbrains.kotlin + kotlin-stdlib +- 1.4.33-SNAPSHOT ++ 1.4.32 + + + diff --git a/patches/server/0002-Brandings.patch b/patches/server/0002-Brandings.patch index 46e8ea79..afd5173c 100644 --- a/patches/server/0002-Brandings.patch +++ b/patches/server/0002-Brandings.patch @@ -66,10 +66,10 @@ index 298b0dfc67906a96d61b4d40919d3363cede0401..7771fa5c98809b6c3aeff78ab9d0b8ec private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 655d45b9c664baee77f356d315baacd40209280f..9d22236808d89183fd1a0a85465533a0b2de4358 100644 +index 17d0d0ec4e22ed8b344a2208925a2e9cba5dd58c..73d2287cc4b45b440612b863cea0ca5067e99ed9 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -277,7 +277,7 @@ public class Main { +@@ -276,7 +276,7 @@ public class Main { if (buildDate.before(deadline.getTime())) { // Paper start - This is some stupid bullshit System.err.println("*** Warning, you've not updated in a while! ***"); diff --git a/patches/server/0003-Utilities.patch b/patches/server/0003-Utilities.patch index cc6e6c12..cef32126 100644 --- a/patches/server/0003-Utilities.patch +++ b/patches/server/0003-Utilities.patch @@ -9,10 +9,10 @@ Co-authored-by: Mykyta Komarnytskyy Co-authored-by: Ivan Pekov diff --git a/pom.xml b/pom.xml -index 67c70c38214f39739d56121dde76a12f584f2a64..0d960c173924f2ee97b9ad676d2c48c532b5ef5d 100644 +index d16dce599382f285685e0990a63dd1bbadc62cac..17e7c9c40db817f6e06b4cce074f232e2db87c95 100644 --- a/pom.xml +++ b/pom.xml -@@ -190,6 +190,12 @@ +@@ -197,6 +197,12 @@ commons-math3 3.6.1 diff --git a/patches/server/0004-Add-GameProfileLookupEvent.patch b/patches/server/0004-Add-GameProfileLookupEvent.patch index 56167a53..e83d8796 100644 --- a/patches/server/0004-Add-GameProfileLookupEvent.patch +++ b/patches/server/0004-Add-GameProfileLookupEvent.patch @@ -40,10 +40,10 @@ index 040fd0c3fc4bc3a04fe5dff919a41fe9b474708e..21d92c3e8e2e953bfc85c1ba3ed54ca0 return profile.isComplete() && (!onlineMode || !textures || hasTextures()); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java -index 1d1d708d1cbebb5a3ee50d5f46d9d953f22447dc..ef1a882e4414ccc6fa9791f8eb83bde00ee4f29d 100644 +index 4f7c014fa609a39cac651ccc6d3397d7edb77d8d..fe9238ecc0f3a4948f5867fcae4fe64c9142a98e 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java -@@ -86,7 +86,18 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa +@@ -87,7 +87,18 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa if ( property == null ) { diff --git a/patches/server/0006-Yatopia-configuration.patch b/patches/server/0006-Yatopia-configuration.patch index ee19c247..1a987054 100644 --- a/patches/server/0006-Yatopia-configuration.patch +++ b/patches/server/0006-Yatopia-configuration.patch @@ -47,7 +47,7 @@ index 28d47ef97939309ce26b6e4cae14925b510755fd..78f7155c8bbeb2b93d42fc2b108ff413 this.setAllowFlight(dedicatedserverproperties.allowFlight); this.setResourcePack(dedicatedserverproperties.resourcePack, this.ba()); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8b76e61228c8c766aaef9afe3fc81fc17a10d72c..12671cf4c4be592cca04525bcd8eeec5406ed88b 100644 +index d710834422afa1d4336f68e2425aaffd64d444e2..26a3eeb58a7862e1efdf02d39a56f49bac7b5c1f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -272,7 +272,7 @@ public abstract class PlayerList { @@ -60,7 +60,7 @@ index 8b76e61228c8c766aaef9afe3fc81fc17a10d72c..12671cf4c4be592cca04525bcd8eeec5 playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities)); playerconnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex)); diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index a25280812056863fdb4d2fbd97e1eb0913f1bbe0..cdf2a8a004302eb36f64a5d275201f6e7b58d95a 100644 +index 254df060dcb7ebef59befa708a694fd7502fc063..a33f2ef70ebb32e7d57a055a2e88cf5c4de48e75 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -367,6 +367,7 @@ public abstract class EntityLiving extends Entity { @@ -106,7 +106,7 @@ index 449fce2d76c701b789dd09326c9a8fc818b39c45..bf7d1480609d4cfc79c772d3b80255e0 public void broadcast(BaseComponent component) { for (Player player : getOnlinePlayers()) { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 9d22236808d89183fd1a0a85465533a0b2de4358..207df35734bdb333a0a2ef56e7041120620c1817 100644 +index 73d2287cc4b45b440612b863cea0ca5067e99ed9..86912aeec22feb7c519ede370651f292ec5a01da 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -164,6 +164,14 @@ public class Main { diff --git a/patches/server/0007-Per-entity-type-collision-settings.patch b/patches/server/0007-Per-entity-type-collision-settings.patch index 86639785..eb1017f7 100644 --- a/patches/server/0007-Per-entity-type-collision-settings.patch +++ b/patches/server/0007-Per-entity-type-collision-settings.patch @@ -59,7 +59,7 @@ index 27599f422be266ad2fdbda49617661801c2c1991..2457b240f3b49dbd5fe0eb603d86418f } \ No newline at end of file diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index cdf2a8a004302eb36f64a5d275201f6e7b58d95a..671e2448965d5db888f6d49538a21076c749557e 100644 +index a33f2ef70ebb32e7d57a055a2e88cf5c4de48e75..0d5acd5e7c2faafd59aa2df9e61f8bb1baa28ffe 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -3053,7 +3053,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0009-Add-NBT-API-as-a-first-class-lib.patch b/patches/server/0009-Add-NBT-API-as-a-first-class-lib.patch index b82513c4..11cdb4d3 100644 --- a/patches/server/0009-Add-NBT-API-as-a-first-class-lib.patch +++ b/patches/server/0009-Add-NBT-API-as-a-first-class-lib.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add NBT API as a first-class lib diff --git a/pom.xml b/pom.xml -index 0d960c173924f2ee97b9ad676d2c48c532b5ef5d..734885f97eabffab6f76051b41f94d0dd16b4263 100644 +index 17e7c9c40db817f6e06b4cce074f232e2db87c95..09a8b8eab88f46bd76326542c35bdb0d4a830acf 100644 --- a/pom.xml +++ b/pom.xml -@@ -370,6 +370,10 @@ +@@ -379,6 +379,10 @@ net/minecraft/server/v${minecraft_version}/$2 true diff --git a/patches/server/0013-lithium-enum_values.patch b/patches/server/0013-lithium-enum_values.patch index 99ac4169..6b52b548 100644 --- a/patches/server/0013-lithium-enum_values.patch +++ b/patches/server/0013-lithium-enum_values.patch @@ -65,7 +65,7 @@ index 8078e4f5b79eaada03508265ba6b81db636e822a..b2d26289a6f501b093ec229394f75864 }; diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 671e2448965d5db888f6d49538a21076c749557e..acccb79200d15bfd7f53adf925d6c8f50050d346 100644 +index 0d5acd5e7c2faafd59aa2df9e61f8bb1baa28ffe..fb62d5bfe188a7ae82a038454cbf0db10de23dda 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -2736,10 +2736,12 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0021-Redirect-Configs.patch b/patches/server/0021-Redirect-Configs.patch index 16e7e249..c3410d84 100644 --- a/patches/server/0021-Redirect-Configs.patch +++ b/patches/server/0021-Redirect-Configs.patch @@ -52,10 +52,10 @@ index 78f7155c8bbeb2b93d42fc2b108ff4135038ea72..cdd1d1f77f6b48fae9f7dcca4a69505c this.setAllowFlight(dedicatedserverproperties.allowFlight); this.setResourcePack(dedicatedserverproperties.resourcePack, this.ba()); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 207df35734bdb333a0a2ef56e7041120620c1817..4fd607eb52637e0626afcba1ba449c3784a85568 100644 +index 86912aeec22feb7c519ede370651f292ec5a01da..b7b8c48b47552555553deeaae2d873c80c4255dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -305,7 +305,7 @@ public class Main { +@@ -304,7 +304,7 @@ public class Main { } // Paper end System.setProperty( "library.jansi.version", "Paper" ); // Paper - set meaningless jansi version to prevent git builds from crashing on Windows diff --git a/patches/server/0024-Optimize-some-stuff-in-WorldServer-ticking.patch b/patches/server/0024-Optimize-some-stuff-in-WorldServer-ticking.patch index f8fcdb4c..3ab25fd6 100644 --- a/patches/server/0024-Optimize-some-stuff-in-WorldServer-ticking.patch +++ b/patches/server/0024-Optimize-some-stuff-in-WorldServer-ticking.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize some stuff in WorldServer ticking Replaced some streams and some array lists with glue lists diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 62d1ee6f091d1b80d6f96930d2edb91259e15ffa..c97d29ef4b6d64a641d72ad754dab18932d185d5 100644 +index 80b08904143b7656aa125a396bbd2866370c8906..e6b9becb87130ee76ccdd087e3c8dee7b18898e4 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1005,12 +1005,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1007,12 +1007,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.server.getPlayerList().sendAll(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.i, this.thunderLevel)); } // */ @@ -34,7 +34,7 @@ index 62d1ee6f091d1b80d6f96930d2edb91259e15ffa..c97d29ef4b6d64a641d72ad754dab189 if (flag != this.isRaining()) { // Only send weather packets to those affected for (int idx = 0; idx < this.players.size(); ++idx) { -@@ -1025,11 +1034,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1027,11 +1036,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } // CraftBukkit end @@ -48,7 +48,7 @@ index 62d1ee6f091d1b80d6f96930d2edb91259e15ffa..c97d29ef4b6d64a641d72ad754dab189 long l = this.worldData.getDayTime() + 24000L; TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (l - l % 24000L) - this.getDayTime()); if (this.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) { -@@ -1235,9 +1242,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1237,9 +1244,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { } private void wakeupPlayers() { @@ -60,7 +60,7 @@ index 62d1ee6f091d1b80d6f96930d2edb91259e15ffa..c97d29ef4b6d64a641d72ad754dab189 } // Paper start - optimise random block ticking -@@ -2067,8 +2074,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2069,8 +2076,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { // Spigot start if ( entity instanceof EntityHuman ) { @@ -71,7 +71,7 @@ index 62d1ee6f091d1b80d6f96930d2edb91259e15ffa..c97d29ef4b6d64a641d72ad754dab189 for (Object o : worldData.data.values() ) { if ( o instanceof WorldMap ) -@@ -2085,7 +2093,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2087,7 +2095,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } } diff --git a/patches/server/0028-Nuke-streams-off-BlockPosition.patch b/patches/server/0028-Nuke-streams-off-BlockPosition.patch index b7b4d648..fad51324 100644 --- a/patches/server/0028-Nuke-streams-off-BlockPosition.patch +++ b/patches/server/0028-Nuke-streams-off-BlockPosition.patch @@ -26,10 +26,10 @@ index bb520b56d797cabec86fce42dd4afff018e66fdd..9c508cc41575175d442cd51d75706830 public static Stream b(BlockPosition blockposition, int i, int j, int k) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index e41615d7583d5485e31fbc0012925a24638101b8..e6c37db1a8b51dda1e9d493d8fbfecd4ddf1aeb3 100644 +index 66ab0911279f8b6e4718c99009e5194bef62e57d..b6de70c3630d96d0782a657c0389ce03839d8c43 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -734,6 +734,7 @@ public abstract class BlockBase { +@@ -735,6 +735,7 @@ public abstract class BlockBase { return this.getBlock().getInventory(this.p(), world, blockposition); } diff --git a/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch b/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch index 81f95ed4..d9de8e6c 100644 --- a/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch +++ b/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch @@ -55,7 +55,7 @@ index c960852dc60d0598012c5eef0d139fe38bde63fb..96fbb1a3d216302aa937e07bf88fdb19 Throwable throwable = null; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 12671cf4c4be592cca04525bcd8eeec5406ed88b..b9c56f03471583f2dddfd6969511943edfccdddf 100644 +index 26a3eeb58a7862e1efdf02d39a56f49bac7b5c1f..f25d26e8dc711019f2140720251abecfa81e187e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -740,6 +740,7 @@ public abstract class PlayerList { diff --git a/patches/server/0031-Fix-LightEngineThreaded-memory-leak.patch b/patches/server/0031-Fix-LightEngineThreaded-memory-leak.patch index 283a4703..2fe93618 100644 --- a/patches/server/0031-Fix-LightEngineThreaded-memory-leak.patch +++ b/patches/server/0031-Fix-LightEngineThreaded-memory-leak.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix LightEngineThreaded memory leak diff --git a/src/main/java/net/minecraft/server/level/LightEngineThreaded.java b/src/main/java/net/minecraft/server/level/LightEngineThreaded.java -index 381bd11075599d44e4c705a8e754769d29883d75..e36d11ffb3e66e6ce6f64d2e771661f8b29c95a8 100644 +index 4d651cc21a9cb2fdeabff62d8978c3ec4abe2f68..470a45d2a59abf9223166bfe5376c3fb3f5d212c 100644 --- a/src/main/java/net/minecraft/server/level/LightEngineThreaded.java +++ b/src/main/java/net/minecraft/server/level/LightEngineThreaded.java @@ -123,6 +123,8 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable { @@ -18,10 +18,10 @@ index 381bd11075599d44e4c705a8e754769d29883d75..e36d11ffb3e66e6ce6f64d2e771661f8 return this.size == 0 && this.pendingTasks.isEmpty(); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index c97d29ef4b6d64a641d72ad754dab18932d185d5..8ea7ad63c0f091102f793b3c1f90b4121c4d74e0 100644 +index e6b9becb87130ee76ccdd087e3c8dee7b18898e4..7cedb4aaf4a002945866a0ca56eb9b0e7ae28de6 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -2053,6 +2053,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2055,6 +2055,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // Paper end diff --git a/patches/server/0040-Configurable-flight-checks.patch b/patches/server/0040-Configurable-flight-checks.patch index 4747b594..c90f3770 100644 --- a/patches/server/0040-Configurable-flight-checks.patch +++ b/patches/server/0040-Configurable-flight-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable flight checks diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 8359ccf316d292d81c56600887178cea6e33f270..9118186161b9db61d041d4b579ca456d1f2c79cc 100644 +index 1e64c2467c1c96e93f6843a9f7283baf2bd33a61..b3bb63559add154888b5e19f2304b5e4a8a9eacc 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -326,7 +326,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0048-Configurable-criterion-triggers.patch b/patches/server/0048-Configurable-criterion-triggers.patch index a9b888bc..eab45b3f 100644 --- a/patches/server/0048-Configurable-criterion-triggers.patch +++ b/patches/server/0048-Configurable-criterion-triggers.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable criterion triggers This patch adds toggles for three criterion triggers that are called every tick. These can be very unnecessary, and especially in the case of CriterionTriggerEnterBlock, quite heavy. diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index b4dbc59faff3fd6ceb74d829762eb68e649975c5..e6bc64037f79a1380bcb99ff3c4455e0d9cb8d5d 100644 +index b8c63c25d2ad9692475e8c7cb307f45853b86ca4..a33cbd6504fd0d5c5e50aa63009d70533c01f686 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -571,6 +571,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0051-Configurable-movement-checks.patch b/patches/server/0051-Configurable-movement-checks.patch index e6b0d439..f64ddd53 100644 --- a/patches/server/0051-Configurable-movement-checks.patch +++ b/patches/server/0051-Configurable-movement-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable movement checks diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 9118186161b9db61d041d4b579ca456d1f2c79cc..ff71cdb236d658cbd0bf7dbe8ccc0882bec494aa 100644 +index b3bb63559add154888b5e19f2304b5e4a8a9eacc..b7624400644ae25b9316c2f1f7bcf0e436fbb3cb 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -598,7 +598,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -604,7 +604,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } // Paper end @@ -17,7 +17,7 @@ index 9118186161b9db61d041d4b579ca456d1f2c79cc..ff71cdb236d658cbd0bf7dbe8ccc0882 // CraftBukkit end PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", entity.getDisplayName().getString(), this.player.getDisplayName().getString(), d6, d7, d8); this.networkManager.sendPacket(new PacketPlayOutVehicleMove(entity)); -@@ -625,7 +625,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -631,7 +631,7 @@ public class PlayerConnection implements PacketListenerPlayIn { d10 = d6 * d6 + d7 * d7 + d8 * d8; boolean flag1 = false; @@ -26,7 +26,7 @@ index 9118186161b9db61d041d4b579ca456d1f2c79cc..ff71cdb236d658cbd0bf7dbe8ccc0882 flag1 = true; // Tuinity - diff on change, this should be moved wrongly PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", entity.getDisplayName().getString(), this.player.getDisplayName().getString(), Math.sqrt(d10)); } -@@ -1373,7 +1373,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1385,7 +1385,7 @@ public class PlayerConnection implements PacketListenerPlayIn { if (!this.player.H() && (!this.player.getWorldServer().getGameRules().getBoolean(GameRules.DISABLE_ELYTRA_MOVEMENT_CHECK) || !this.player.isGliding())) { float f2 = this.player.isGliding() ? 300.0F : 100.0F; @@ -35,7 +35,7 @@ index 9118186161b9db61d041d4b579ca456d1f2c79cc..ff71cdb236d658cbd0bf7dbe8ccc0882 // CraftBukkit end PlayerConnection.LOGGER.warn("{} moved too quickly! {},{},{}", this.player.getDisplayName().getString(), d7, d8, d9); this.a(this.player.locX(), this.player.locY(), this.player.locZ(), this.player.yaw, this.player.pitch); -@@ -1439,7 +1439,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1451,7 +1451,7 @@ public class PlayerConnection implements PacketListenerPlayIn { d11 = d7 * d7 + d8 * d8 + d9 * d9; boolean flag1 = false; diff --git a/patches/server/0055-add-config-for-logging-login-location.patch b/patches/server/0055-add-config-for-logging-login-location.patch index 5cd243e9..7a5a62d7 100644 --- a/patches/server/0055-add-config-for-logging-login-location.patch +++ b/patches/server/0055-add-config-for-logging-login-location.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add config for logging login location diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b9c56f03471583f2dddfd6969511943edfccdddf..4d7aa221577f21e6cd67f02ba544168094819ad9 100644 +index f25d26e8dc711019f2140720251abecfa81e187e..f73ba39e243e9119ffc924ebb9ca6cf4cc570e3f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -480,7 +480,14 @@ public abstract class PlayerList { diff --git a/upstream/Airplane b/upstream/Airplane index 3ed988c0..8de8e82a 160000 --- a/upstream/Airplane +++ b/upstream/Airplane @@ -1 +1 @@ -Subproject commit 3ed988c05fd9256e658c626997df4d98d520333c +Subproject commit 8de8e82a2bd6b404f0e8dde191302e0df37d7469 diff --git a/upstream/Purpur b/upstream/Purpur index 96319592..2e66f834 160000 --- a/upstream/Purpur +++ b/upstream/Purpur @@ -1 +1 @@ -Subproject commit 96319592fdabf899dd4b383bdb507e61eea924e4 +Subproject commit 2e66f8344b927b290830603be3eaf72e85778d03 diff --git a/upstream/Tuinity b/upstream/Tuinity index 94f025a2..d5261ad2 160000 --- a/upstream/Tuinity +++ b/upstream/Tuinity @@ -1 +1 @@ -Subproject commit 94f025a2e49d10f32b1bc437f4dc4097e0e674a7 +Subproject commit d5261ad292adb425059eae538526db3166ffe1a0 diff --git a/upstreamCommits/Airplane b/upstreamCommits/Airplane index 0aa7eecf..5e7a49f7 100644 --- a/upstreamCommits/Airplane +++ b/upstreamCommits/Airplane @@ -1 +1 @@ -3ed988c05fd9256e658c626997df4d98d520333c \ No newline at end of file +8de8e82a2bd6b404f0e8dde191302e0df37d7469 \ No newline at end of file diff --git a/upstreamCommits/Purpur b/upstreamCommits/Purpur index 2de7f323..3e01031f 100644 --- a/upstreamCommits/Purpur +++ b/upstreamCommits/Purpur @@ -1 +1 @@ -96319592fdabf899dd4b383bdb507e61eea924e4 \ No newline at end of file +2e66f8344b927b290830603be3eaf72e85778d03 \ No newline at end of file diff --git a/upstreamCommits/Tuinity b/upstreamCommits/Tuinity index 76cf2116..6c1b6ca2 100644 --- a/upstreamCommits/Tuinity +++ b/upstreamCommits/Tuinity @@ -1 +1 @@ -94f025a2e49d10f32b1bc437f4dc4097e0e674a7 \ No newline at end of file +d5261ad292adb425059eae538526db3166ffe1a0 \ No newline at end of file