From 7f7f024f02442fe216346790a9e30a1e7df4eea5 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Tue, 13 Apr 2021 10:56:22 -0500 Subject: [PATCH] Updated Upstream (Paper, Tuinity, & Airplane) Upstream has released updates that appear to apply and compile correctly Paper Changes: 8a29f5894 [Auto] Updated Upstream (Bukkit/CraftBukkit) 8756d232c Expose server protocol version (#5416) 4492bc4cc remove l4j class no longer in existence from preload list be1370517 Updated Upstream (CraftBukkit) (#5484) d560151ec Bump mysql-connector-java to 8.0.23 (Fixes #5473) (#5474) 61f400f11 Update log4j to 2.11.2 for JDK 9+ compat (#5400) a98196585 Updated Upstream (Bukkit/CraftBukkit) de138fac4 [Auto] Updated Upstream (Bukkit) 304a216ba [CI-SKIP] Ignore gitignore when adding files in automation d8e384a16 [CI-SKIP] Drop `Allow PlayerEditBookEvent to fire for off hand` (#5471) Tuinity Changes: d5261ad29 Do not load chunks for getCubes by default da9cf9828 Don't read neighbor chunk data off disk when converting chunks a0aa5ab07 Do not load 1 radius neighbors for lighting 5ccfa52a2 Fix terrible patch times af53d703a Stop large move vectors in player packet handling from killing the server 6e56ee735 Fix OBFHELPER for flushHeaderin RegionFile 995d05c1c Do not update TE's in generating chunks Airplane Changes: 8de8e82a2 Update upstream (Tuinity) --- Paper | 2 +- patches/api/0001-Tuinity-API-Changes.patch | 2 +- .../0019-ItemStack-convenience-methods.patch | 4 +- ...oc-warnings-missing-param-and-return.patch | 2 +- ...-Add-unsafe-Entity-serialization-API.patch | 6 +- .../server/0001-Tuinity-Server-Changes.patch | 239 +++++++++++------- .../server/0002-Airplane-Server-Changes.patch | 10 +- .../0003-Multithreaded-entity-tracking.patch | 4 +- patches/server/0004-Rebrand.patch | 10 +- patches/server/0005-Purpur-config-files.patch | 2 +- patches/server/0010-AFK-API.patch | 12 +- .../0018-Player-invulnerabilities.patch | 8 +- .../0021-Alternative-Keepalive-Handling.patch | 4 +- .../0026-Disable-outdated-build-check.patch | 4 +- .../0029-Zombie-horse-naturally-spawn.patch | 2 +- ...0030-Charged-creeper-naturally-spawn.patch | 2 +- .../server/0047-Signs-allow-color-codes.patch | 6 +- .../server/0049-Controllable-Minecarts.patch | 2 +- ...051-Players-should-not-cram-to-death.patch | 2 +- .../0056-Add-permission-for-F3-N-debug.patch | 2 +- ...derman-and-creeper-griefing-controls.patch | 2 +- .../0079-Configurable-jockey-options.patch | 2 +- .../0085-Allow-color-codes-in-books.patch | 8 +- patches/server/0086-Entity-lifespan.patch | 4 +- ...leport-to-spawn-if-outside-world-bor.patch | 2 +- .../0100-Add-no-random-tick-block-list.patch | 2 +- patches/server/0104-Ridables.patch | 12 +- ...ggling-special-MobSpawners-per-world.patch | 2 +- .../0119-Configurable-daylight-cycle.patch | 2 +- ...23-Add-tablist-suffix-option-for-afk.patch | 2 +- .../0139-Add-boat-fall-damage-config.patch | 2 +- ...d-out-and-optimise-player-list-ticks.patch | 2 +- ...-Configurable-entity-base-attributes.patch | 4 +- patches/server/0154-Implement-TPSBar.patch | 2 +- .../server/0156-PlayerBookTooLargeEvent.patch | 8 +- .../server/0166-Fix-stuck-in-portals.patch | 2 +- ...-Add-unsafe-Entity-serialization-API.patch | 2 +- .../server/0174-Dont-run-with-scissors.patch | 4 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 2 +- ...ig-to-make-Creepers-explode-on-death.patch | 2 +- .../0187-Config-for-skipping-night.patch | 2 +- 41 files changed, 228 insertions(+), 167 deletions(-) diff --git a/Paper b/Paper index 3db3aaf39..8a29f5894 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 3db3aaf393709cd7d0e59b6c24ab7170c5b2942e +Subproject commit 8a29f589421b765dc400902d512449fe707dbba0 diff --git a/patches/api/0001-Tuinity-API-Changes.patch b/patches/api/0001-Tuinity-API-Changes.patch index a008c9e08..ea829805f 100644 --- a/patches/api/0001-Tuinity-API-Changes.patch +++ b/patches/api/0001-Tuinity-API-Changes.patch @@ -217,7 +217,7 @@ index f3e27d2d02a9407bb1b091b8c1125ad5abf99e55..b3e7b2a8eaa3980e34bc74a846320b78 * Sends the component to the player * 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/api/0019-ItemStack-convenience-methods.patch b/patches/api/0019-ItemStack-convenience-methods.patch index cab25ff27..c29a2c360 100644 --- a/patches/api/0019-ItemStack-convenience-methods.patch +++ b/patches/api/0019-ItemStack-convenience-methods.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 0a31a5321ac519568db936c94394f71b2e2fcec1..42a77a5f5b8968351a737cb1fd7cebf160b13245 100644 +index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..5b41f1016ed2d5ace2b47d3dd398314230af84b7 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -8660,4 +8660,36 @@ public enum Material implements Keyed { +@@ -8718,4 +8718,36 @@ public enum Material implements Keyed { // } } diff --git a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch index a21f11cdc..54f07eeb7 100644 --- a/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0033-Fix-javadoc-warnings-missing-param-and-return.patch @@ -534,7 +534,7 @@ index 28a1fe3af1546daa779df46468e0ff8ad823f9ca..7a3be414ef9d54d7a852ba92d704011f @NotNull diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 7f90ef2fd1c87c5b8b69f2e9dba3ad8e6e9ce3ec..85f77a58bf6c21da815b6652c7b50d578951a14c 100644 +index ba899198be49f9e95c3fb64759313662f75c4567..db4b94f8a4dd49fffdcb0cd9bf0690f0770653d9 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -81,6 +81,8 @@ public interface UnsafeValues { diff --git a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch index 26f433316..b701cb16d 100644 --- a/patches/api/0038-Add-unsafe-Entity-serialization-API.patch +++ b/patches/api/0038-Add-unsafe-Entity-serialization-API.patch @@ -17,12 +17,12 @@ 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/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 85f77a58bf6c21da815b6652c7b50d578951a14c..59a91250d80e6f67a32cb4c7a216f1389338ddbf 100644 +index db4b94f8a4dd49fffdcb0cd9bf0690f0770653d9..bca389b75ed072ec95beb7a5c5eb5ac93ce42ecd 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -152,4 +152,28 @@ public interface UnsafeValues { +@@ -159,4 +159,28 @@ public interface UnsafeValues { */ - public io.papermc.paper.inventory.ItemRarity getItemStackRarity(ItemStack itemStack); + int getProtocolVersion(); // Paper end + + // Purpur start diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index f05fab21f..e4fa5556f 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -169,7 +169,7 @@ permanent authorization for you to choose that version for the Library. diff --git a/pom.xml b/pom.xml -index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..dad9981b1cd1ca8b27a45972188fd2b92f5146e7 100644 +index ab57297272c2d6f3d21067081bcaf8775b8fff09..de7da911833569c97b7f800a43ee7354d19677e2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -187,7 +187,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..dad9981b1cd1ca8b27a45972188fd2b9 -@@ -19,16 +19,16 @@ +@@ -19,8 +19,8 @@ @@ -198,6 +198,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..dad9981b1cd1ca8b27a45972188fd2b9 dev-SNAPSHOT ../pom.xml +@@ -39,8 +39,8 @@ @@ -208,7 +209,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..dad9981b1cd1ca8b27a45972188fd2b9 ${project.version} compile -@@ -38,6 +38,13 @@ +@@ -50,6 +50,13 @@ ${project.version} compile @@ -222,7 +223,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..dad9981b1cd1ca8b27a45972188fd2b9 io.papermc minecraft-server -@@ -105,11 +112,7 @@ +@@ -112,11 +119,7 @@ cleaner 1.0-SNAPSHOT @@ -235,7 +236,7 @@ index 25ec9c4f8c08551fd80a597a1b39854e70e4f895..dad9981b1cd1ca8b27a45972188fd2b9 com.googlecode.json-simple -@@ -149,19 +152,26 @@ +@@ -156,19 +159,26 @@ 4.8.47 test @@ -11404,7 +11405,7 @@ index 2f8bca35508640f6b8c312fff17d55f129431599..db8532c42fcb2e96f4b3491352d1b9a2 class b extends ChunkMap { diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java -index c5e54c519e1f686761faa53b5e9579c514a65332..fe040615ff03478a20cdf8376f89a6b7d100ba61 100644 +index c5e54c519e1f686761faa53b5e9579c514a65332..cb83f1152c52a99d25e4e80cc8bf18c6793e8b50 100644 --- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java @@ -47,6 +47,12 @@ import net.minecraft.world.level.storage.WorldData; @@ -11800,7 +11801,7 @@ index c5e54c519e1f686761faa53b5e9579c514a65332..fe040615ff03478a20cdf8376f89a6b7 } private void a(long i, Consumer consumer) { -@@ -1026,44 +1237,12 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -1026,51 +1237,19 @@ public class ChunkProviderServer extends IChunkProvider { ChunkProviderServer.this.world.getMethodProfiler().c("runTask"); super.executeTask(runnable); } @@ -11848,8 +11849,16 @@ index c5e54c519e1f686761faa53b5e9579c514a65332..fe040615ff03478a20cdf8376f89a6b7 // CraftBukkit start - process pending Chunk loadCallback() and unloadCallback() after each run task try { boolean execChunkTask = com.destroystokyo.paper.io.chunk.ChunkTaskManager.pollChunkWaitQueue() || ChunkProviderServer.this.world.asyncChunkTaskManager.pollNextChunkTask(); // Paper + if (ChunkProviderServer.this.tickDistanceManager()) { + return true; + } else { +- ChunkProviderServer.this.lightEngine.queueUpdate(); // Paper - not needed ++ ChunkProviderServer.this.lightEngine.queueUpdate(); // Paper - not needed // Tuinity - prevent queue overflow when no players are in this world + return super.executeNext() || execChunkTask; // Paper + } + } finally { diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..59989db6dcf96a8ab5a75775bb588c31cec3418a 100644 +index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..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 { @@ -11861,6 +11870,24 @@ index 37c9b5fd712e30a9a0faccc840f738f4b2cfc723..59989db6dcf96a8ab5a75775bb588c31 public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event public EntityPlayer(MinecraftServer minecraftserver, WorldServer worldserver, GameProfile gameprofile, PlayerInteractManager playerinteractmanager) { +@@ -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()); + } + } @@ -661,6 +661,185 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } @@ -12102,7 +12129,7 @@ index 4ee7070364a8989eece4fa4237b529926821f9c9..f22ab98d2e250081df8949be8a997370 this.a(Long.MAX_VALUE, i, j, flag); } 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; @@ -12131,7 +12158,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(); @@ -12202,21 +12229,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); + } + } + @@ -12240,45 +12264,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; + } @@ -12315,8 +12308,8 @@ index 0b80569648c1df01aab52d0b8d47028cda925d86..381bd11075599d44e4c705a8e754769d + }); + } + }, this.playerChunkMap.mainInvokingExecutor); - } - ++ } ++ + // override things from superclass + + @Override @@ -12350,7 +12343,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(); @@ -12366,7 +12359,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) { @@ -12378,7 +12371,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) { @@ -12393,7 +12386,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) { @@ -12405,7 +12398,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) { @@ -12417,7 +12410,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 { })); } @@ -12425,7 +12418,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) { @@ -12437,7 +12430,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(); @@ -12473,7 +12466,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() { @@ -12482,7 +12475,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() { @@ -13672,7 +13665,7 @@ index 3c804c7b20a14ea6e510810e2be10c1cc89ff5c1..3738c51b5e673c439d88a7ef7f4614f3 return new TicketType<>(s, comparator, 0L); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ef9b08df58d9d28df6b8ade076d95bf7e5cb1b18..46baad407de5598ecb23fcbb9a3fb4ee82addb17 100644 +index ef9b08df58d9d28df6b8ade076d95bf7e5cb1b18..fcf9af44702f34d75185eee0b3259fe0e57001b1 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -168,12 +168,13 @@ import org.bukkit.event.server.MapInitializeEvent; @@ -14153,7 +14146,7 @@ index ef9b08df58d9d28df6b8ade076d95bf7e5cb1b18..46baad407de5598ecb23fcbb9a3fb4ee + @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 + @@ -14651,10 +14644,23 @@ index 185667110cd6f566b23546728d20fc79223f3c92..dc98ef48a664d9ee2a302fff8c611fd1 throw new IllegalStateException("Protocol error", cryptographyexception); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f61d76f9f 100644 +index e6ea84ba098b4d77bc68e99862992a10ef4585b5..83ad913e46f44aabb41b7e441cba2ef2f7bcbc46 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 { +@@ -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 +@@ -568,7 +574,9 @@ public class PlayerConnection implements PacketListenerPlayIn { speed *= 2f; // TODO: Get the speed of the vehicle instead of the player // Paper start - Prevent moving into unloaded chunks @@ -14665,7 +14671,7 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f this.networkManager.sendPacket(new PacketPlayOutVehicleMove(entity)); return; } -@@ -581,12 +583,14 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -581,12 +589,14 @@ public class PlayerConnection implements PacketListenerPlayIn { return; } @@ -14673,15 +14679,18 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f + //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; +- 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; d6 = d3 - entity.locX(); -@@ -600,16 +604,25 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -600,16 +610,25 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean flag1 = false; if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot @@ -14711,7 +14720,7 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f entity.setLocation(d0, d1, d2, f, f1); player.setLocation(d0, d1, d2, this.player.yaw, this.player.pitch); // CraftBukkit this.networkManager.sendPacket(new PacketPlayOutVehicleMove(entity)); -@@ -695,7 +708,32 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -695,7 +714,32 @@ public class PlayerConnection implements PacketListenerPlayIn { } private boolean a(Entity entity) { @@ -14745,7 +14754,7 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f } @Override -@@ -1217,7 +1255,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1217,7 +1261,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } if (this.teleportPos != null) { @@ -14754,7 +14763,20 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f this.A = this.e; this.a(this.teleportPos.x, this.teleportPos.y, this.teleportPos.z, this.player.yaw, this.player.pitch); } -@@ -1287,7 +1325,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1255,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) { +@@ -1287,7 +1337,7 @@ public class PlayerConnection implements PacketListenerPlayIn { speed = player.abilities.walkSpeed * 10f; } // Paper start - Prevent moving into unloaded chunks @@ -14763,16 +14785,23 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f this.internalTeleport(this.player.locX(), this.player.locY(), this.player.locZ(), this.player.yaw, this.player.pitch, Collections.emptySet()); return; } -@@ -1304,7 +1342,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1304,11 +1354,11 @@ public class PlayerConnection implements PacketListenerPlayIn { } } - AxisAlignedBB axisalignedbb = this.player.getBoundingBox(); + AxisAlignedBB axisalignedbb = this.player.getBoundingBox(); // Tuinity - diff on change, should be old AABB - d7 = d4 - this.o; - d8 = d5 - this.p; -@@ -1343,6 +1381,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +- 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) { +@@ -1343,6 +1393,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } this.player.move(EnumMoveType.PLAYER, new Vec3D(d7, d8, d9)); @@ -14780,7 +14809,7 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f this.player.setOnGround(packetplayinflying.b()); // CraftBukkit - SPIGOT-5810, SPIGOT-5835: reset by this.player.move // Paper start - prevent position desync if (this.teleportPos != null) { -@@ -1362,12 +1401,23 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1362,12 +1413,23 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean flag1 = false; if (!this.player.H() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative() && this.player.playerInteractManager.getGameMode() != EnumGamemode.SPECTATOR) { // Spigot @@ -14806,7 +14835,7 @@ index e6ea84ba098b4d77bc68e99862992a10ef4585b5..40a7f69e5e14078977ef615abf3a0f1f this.a(d0, d1, d2, f, f1); } else { // CraftBukkit start - fire PlayerMoveEvent -@@ -1454,6 +1504,26 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1454,6 +1516,26 @@ public class PlayerConnection implements PacketListenerPlayIn { } } @@ -14850,7 +14879,7 @@ index dc362724ea0cc1b2f9d9ceffff483217b4356c40..70fde7bad2e0a6d7432d8509fdb7c46d protected void initChannel(Channel channel) throws Exception { try { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 2df8e914f66176e22aeddf8b94a83af5ea921d88..499b516330f3f3a48fb64802f2e8c1b7c9684f4d 100644 +index 2df8e914f66176e22aeddf8b94a83af5ea921d88..0b5cf23932c3c626d8805d4db97d2bbab63634cf 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 { @@ -14879,7 +14908,14 @@ index 2df8e914f66176e22aeddf8b94a83af5ea921d88..499b516330f3f3a48fb64802f2e8c1b7 Player player = entity.getBukkitEntity(); PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.networkManager.getRawAddress()).getAddress()); -@@ -949,7 +950,7 @@ public abstract class PlayerList { +@@ -943,13 +944,13 @@ 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 WorldData worlddata = worldserver1.getWorldData(); entityplayer1.playerConnection.sendPacket(new PacketPlayOutRespawn(worldserver1.getDimensionManager(), worldserver1.getDimensionKey(), BiomeManager.a(worldserver1.getSeed()), entityplayer1.playerInteractManager.getGameMode(), entityplayer1.playerInteractManager.c(), worldserver1.isDebugWorld(), worldserver1.isFlatWorld(), flag)); @@ -18615,10 +18651,10 @@ index 4eaf497d048324a85ce49fc1c6e9559991c20df7..ec2b238480413ba9c123d9ddeaa787d9 BiomeStorage biomestorage = ichunkaccess.getBiomeIndex(); 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 890362d28ab9cb760c73fe5014e144fb08ada6b8..3c532d3996dfc734ec07181701280b6072bff55f 100644 +index 890362d28ab9cb760c73fe5014e144fb08ada6b8..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 -@@ -39,7 +39,7 @@ public class IChunkLoader implements AutoCloseable { +@@ -39,13 +39,14 @@ public class IChunkLoader implements AutoCloseable { public final RegionFileCache regionFileCache; public IChunkLoader(File file, DataFixer datafixer, boolean flag) { @@ -18627,6 +18663,13 @@ index 890362d28ab9cb760c73fe5014e144fb08ada6b8..3c532d3996dfc734ec07181701280b60 this.b = datafixer; // Paper - nuke IOWorker } + + // 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/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java index 1b0535ba211904b2384cc80c02c21ed1a606e752..7cdac33e153ccba0a7e8b5aa8fbcbb58ade6a9d2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java @@ -19542,6 +19585,24 @@ index bcb620e9b7f47341f51af0f3bb7fbd6a348f9739..79214a93c533839d0c560a1e4f5904c6 this.h = s; this.i = heightmap_use; this.j = predicate; +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/src/main/java/net/minecraft/world/level/lighting/LightEngineStorage.java b/src/main/java/net/minecraft/world/level/lighting/LightEngineStorage.java index fc0162e7f543d230277457638f208a66537560d7..3825a3ddea21e7dd14c455daac1a6af5b0871e00 100644 --- a/src/main/java/net/minecraft/world/level/lighting/LightEngineStorage.java @@ -20367,7 +20428,7 @@ index 03b8d67a5f0088c0254b2099f27e8dcae32a6221..fd3333fef4112e6469ccd316ba2c8292 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e739b4f8a7b8785ceb11c553bd27e2fe0e64a4bb..b393490231ea00af15d883336a07de6cca642195 100644 +index 62513d3acb930c4c9fa3d875a1fc94bb4d948951..91005e112950d79e1120e5595570970b94cd3c67 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 { @@ -20440,7 +20501,7 @@ index e739b4f8a7b8785ceb11c553bd27e2fe0e64a4bb..b393490231ea00af15d883336a07de6c @Override public boolean isChunkForceLoaded(int x, int z) { return getHandle().getForceLoadedChunks().contains(ChunkCoordIntPair.pair(x, z)); -@@ -2586,7 +2612,7 @@ public class CraftWorld implements World { +@@ -2587,7 +2613,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); @@ -20449,7 +20510,7 @@ index e739b4f8a7b8785ceb11c553bd27e2fe0e64a4bb..b393490231ea00af15d883336a07de6c return CompletableFuture.completedFuture(chunk == null ? null : chunk.getBukkitChunk()); }, net.minecraft.server.MinecraftServer.getServer()); } -@@ -2611,14 +2637,14 @@ public class CraftWorld implements World { +@@ -2612,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; @@ -20466,7 +20527,7 @@ index e739b4f8a7b8785ceb11c553bd27e2fe0e64a4bb..b393490231ea00af15d883336a07de6c } @Override -@@ -2627,11 +2653,22 @@ public class CraftWorld implements World { +@@ -2628,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; @@ -20491,7 +20552,7 @@ index e739b4f8a7b8785ceb11c553bd27e2fe0e64a4bb..b393490231ea00af15d883336a07de6c // Spigot start private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot() diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 23389d0a0e7bd8aeb2f1ab0ea6a149ef99e800fb..2774abda3dd1390ae904bf2b177bdd0f11968f40 100644 +index 154f3a6a3d37b94c40cb29c305e3aa5fb494850c..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 { @@ -20508,7 +20569,7 @@ index 23389d0a0e7bd8aeb2f1ab0ea6a149ef99e800fb..2774abda3dd1390ae904bf2b177bdd0f // Paper start acceptsAll(asList("server-name"), "Name of the server") -@@ -254,7 +261,7 @@ public class Main { +@@ -253,7 +260,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/0002-Airplane-Server-Changes.patch b/patches/server/0002-Airplane-Server-Changes.patch index 348785c3f..86e691ac0 100644 --- a/patches/server/0002-Airplane-Server-Changes.patch +++ b/patches/server/0002-Airplane-Server-Changes.patch @@ -626,10 +626,10 @@ copy of the Program in return for a fee. END OF TERMS AND CONDITIONS diff --git a/pom.xml b/pom.xml -index dad9981b1cd1ca8b27a45972188fd2b92f5146e7..2071c1f39cdf954c7dc15afcabab58cf2e340e68 100644 +index de7da911833569c97b7f800a43ee7354d19677e2..c917f825378dd16a329105b4e7fcc8882755bc5a 100644 --- a/pom.xml +++ b/pom.xml -@@ -27,8 +27,8 @@ +@@ -39,8 +39,8 @@ @@ -640,7 +640,7 @@ index dad9981b1cd1ca8b27a45972188fd2b92f5146e7..2071c1f39cdf954c7dc15afcabab58cf ${project.version} compile -@@ -159,6 +159,20 @@ +@@ -166,6 +166,20 @@ 1.1.0-SNAPSHOT compile @@ -1442,7 +1442,7 @@ index d902efdb8f2d42ea4c3933f7fa76ebe135ee09db..24a46ad36613faa5f5a1a12b70f7af88 this.setPVP(dedicatedserverproperties.pvp); this.setAllowFlight(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java -index fe040615ff03478a20cdf8376f89a6b7d100ba61..207a9c3928aad7c6e89a120b54d87e003ebd232c 100644 +index cb83f1152c52a99d25e4e80cc8bf18c6793e8b50..87c87b9767003652814c3726eece64470dbb69a8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java @@ -1000,6 +1000,7 @@ public class ChunkProviderServer extends IChunkProvider { @@ -1531,7 +1531,7 @@ index d7eede51f1c4ebbe8e00b16efd6331c87db53bb4..bc18b9c3aac4c5feeb1603554e0ac009 return this.a(i); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 46baad407de5598ecb23fcbb9a3fb4ee82addb17..c35e7d01af6dde7998edc4da74ed005c8ccc11ee 100644 +index fcf9af44702f34d75185eee0b3259fe0e57001b1..d13c6f4c368ca6fe3326b66d4c3ef94cf166e7e3 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1083,11 +1083,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { diff --git a/patches/server/0003-Multithreaded-entity-tracking.patch b/patches/server/0003-Multithreaded-entity-tracking.patch index f647be4df..dd3c20b5a 100644 --- a/patches/server/0003-Multithreaded-entity-tracking.patch +++ b/patches/server/0003-Multithreaded-entity-tracking.patch @@ -197,7 +197,7 @@ index 0000000000000000000000000000000000000000..4419fbe94041f4b8a0ea848880798289 + +} diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java -index 207a9c3928aad7c6e89a120b54d87e003ebd232c..424cd048f905cd0ed3f7a4545a26ffde8da1f91f 100644 +index 87c87b9767003652814c3726eece64470dbb69a8..dc1b7db4d39d4dfa65d60e5a059d3b94def6cf62 100644 --- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java @@ -388,7 +388,7 @@ public class ChunkProviderServer extends IChunkProvider { @@ -210,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 { diff --git a/patches/server/0004-Rebrand.patch b/patches/server/0004-Rebrand.patch index c7490d2a5..2c30a08a9 100644 --- a/patches/server/0004-Rebrand.patch +++ b/patches/server/0004-Rebrand.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Rebrand diff --git a/pom.xml b/pom.xml -index 2071c1f39cdf954c7dc15afcabab58cf2e340e68..622519b575b224805f147d3ef60d41b9ca3566de 100644 +index c917f825378dd16a329105b4e7fcc8882755bc5a..6fe8dad8df109531f2b38fbfcb58b6807dbb8cf0 100644 --- a/pom.xml +++ b/pom.xml -@@ -27,8 +27,10 @@ +@@ -39,8 +39,10 @@ @@ -21,7 +21,7 @@ index 2071c1f39cdf954c7dc15afcabab58cf2e340e68..622519b575b224805f147d3ef60d41b9 ${project.version} compile -@@ -175,6 +177,14 @@ +@@ -182,6 +184,14 @@ @@ -36,7 +36,7 @@ index 2071c1f39cdf954c7dc15afcabab58cf2e340e68..622519b575b224805f147d3ef60d41b9 tuinity-${minecraft.version} -@@ -352,8 +362,15 @@ +@@ -361,8 +371,15 @@ org.eclipse.jdt ecj @@ -243,7 +243,7 @@ index aec6c036ed42078a6cc3540f1f6e46a551e87a2f..f9913d7bd66935f975b756f31e26153e private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 712a32c0b64dace1f3e3d6f8acb8cbef1736b1f9..eba28b9c5cb87dea09bf8430d253725f585f87b9 100644 +index 6bfba82b428250e6725688d196b3dc6ac11a5e01..38e1bd3893b9dfcf1bac1333d06b4e9792793ec6 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -377,7 +377,7 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0005-Purpur-config-files.patch b/patches/server/0005-Purpur-config-files.patch index 6e0f782c9..89da34d09 100644 --- a/patches/server/0005-Purpur-config-files.patch +++ b/patches/server/0005-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/server/0010-AFK-API.patch b/patches/server/0010-AFK-API.patch index 438256353..5a550b8b8 100644 --- a/patches/server/0010-AFK-API.patch +++ b/patches/server/0010-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,7 +64,7 @@ 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 c35e7d01af6dde7998edc4da74ed005c8ccc11ee..c4f58ea8818d0c3e6dcd215f4cbb46a4b59ffa3b 100644 +index d13c6f4c368ca6fe3326b66d4c3ef94cf166e7e3..946c49ef50ed9360467b6e29d7121da676832156 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1002,7 +1002,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -86,7 +86,7 @@ index c35e7d01af6dde7998edc4da74ed005c8ccc11ee..c4f58ea8818d0c3e6dcd215f4cbb46a4 } 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 40a7f69e5e14078977ef615abf3a0f1f61d76f9f..a1db769f91ce52b1179837b5f532875c21a57367 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 40a7f69e5e14078977ef615abf3a0f1f61d76f9f..a1db769f91ce52b1179837b5f532875c 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 40a7f69e5e14078977ef615abf3a0f1f61d76f9f..a1db769f91ce52b1179837b5f532875c // 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 40a7f69e5e14078977ef615abf3a0f1f61d76f9f..a1db769f91ce52b1179837b5f532875c } 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/server/0018-Player-invulnerabilities.patch b/patches/server/0018-Player-invulnerabilities.patch index 232e56d80..e69b0154a 100644 --- a/patches/server/0018-Player-invulnerabilities.patch +++ b/patches/server/0018-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 a1db769f91ce52b1179837b5f532875c21a57367..78522c87e5c6dc63912eb8c329cf7dfa4320b35a 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 a1db769f91ce52b1179837b5f532875c21a57367..78522c87e5c6dc63912eb8c329cf7dfa 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/server/0021-Alternative-Keepalive-Handling.patch b/patches/server/0021-Alternative-Keepalive-Handling.patch index 905e83c2f..30aeb1dff 100644 --- a/patches/server/0021-Alternative-Keepalive-Handling.patch +++ b/patches/server/0021-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 78522c87e5c6dc63912eb8c329cf7dfa4320b35a..87735e7c205d7a9c212935bb56e70b449bb024bb 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 78522c87e5c6dc63912eb8c329cf7dfa4320b35a..87735e7c205d7a9c212935bb56e70b44 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/server/0026-Disable-outdated-build-check.patch b/patches/server/0026-Disable-outdated-build-check.patch index 5cf42bd3c..f6fccf8e2 100644 --- a/patches/server/0026-Disable-outdated-build-check.patch +++ b/patches/server/0026-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/server/0029-Zombie-horse-naturally-spawn.patch b/patches/server/0029-Zombie-horse-naturally-spawn.patch index c7d8fdd75..05dec8078 100644 --- a/patches/server/0029-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0029-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 c4f58ea8818d0c3e6dcd215f4cbb46a4b59ffa3b..2048b6f05d68eb31154f4a4c36ff8fa9ee225434 100644 +index 946c49ef50ed9360467b6e29d7121da676832156..12bac4dbf7164c4d674897ed067958965a862864 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; diff --git a/patches/server/0030-Charged-creeper-naturally-spawn.patch b/patches/server/0030-Charged-creeper-naturally-spawn.patch index 3f2e7f991..306f6851b 100644 --- a/patches/server/0030-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0030-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/server/0047-Signs-allow-color-codes.patch b/patches/server/0047-Signs-allow-color-codes.patch index 0cacbd332..9d4cc49dd 100644 --- a/patches/server/0047-Signs-allow-color-codes.patch +++ b/patches/server/0047-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 87735e7c205d7a9c212935bb56e70b449bb024bb..ac7618caf6845bd35a5ea5980d1e2f889fb8301f 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/server/0049-Controllable-Minecarts.patch b/patches/server/0049-Controllable-Minecarts.patch index 484c796a9..3a9e6d87e 100644 --- a/patches/server/0049-Controllable-Minecarts.patch +++ b/patches/server/0049-Controllable-Minecarts.patch @@ -30,7 +30,7 @@ index 73ec17dea5d5668e49c9a6ad679bd3a362960c72..54e97ae219d49a595441af6c5bae8ece 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; diff --git a/patches/server/0051-Players-should-not-cram-to-death.patch b/patches/server/0051-Players-should-not-cram-to-death.patch index 0c25fcd82..e0598478f 100644 --- a/patches/server/0051-Players-should-not-cram-to-death.patch +++ b/patches/server/0051-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/server/0056-Add-permission-for-F3-N-debug.patch b/patches/server/0056-Add-permission-for-F3-N-debug.patch index ef42b925e..29c49e6d6 100644 --- a/patches/server/0056-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0056-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/server/0060-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch index ef0b18939..6466333c7 100644 --- a/patches/server/0060-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0060-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/server/0079-Configurable-jockey-options.patch b/patches/server/0079-Configurable-jockey-options.patch index bc0f3d15b..a129aadab 100644 --- a/patches/server/0079-Configurable-jockey-options.patch +++ b/patches/server/0079-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/server/0085-Allow-color-codes-in-books.patch b/patches/server/0085-Allow-color-codes-in-books.patch index bfdadfaa9..bf4cf8868 100644 --- a/patches/server/0085-Allow-color-codes-in-books.patch +++ b/patches/server/0085-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 ac7618caf6845bd35a5ea5980d1e2f889fb8301f..ac170c62b053e6a56ce6792d243722447565f333 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(); @@ -18,7 +18,7 @@ index ac7618caf6845bd35a5ea5980d1e2f889fb8301f..ac170c62b053e6a56ce6792d24372244 ItemStack old = itemstack.cloneItemStack(); // CraftBukkit itemstack.a("pages", (NBTBase) nbttaglist); this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) -@@ -1221,13 +1222,14 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1227,13 +1228,14 @@ public class PlayerConnection implements PacketListenerPlayIn { itemstack1.setTag(nbttagcompound.clone()); } @@ -35,7 +35,7 @@ index ac7618caf6845bd35a5ea5980d1e2f889fb8301f..ac170c62b053e6a56ce6792d24372244 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/server/0086-Entity-lifespan.patch b/patches/server/0086-Entity-lifespan.patch index 32cf1ba0f..6a1936a77 100644 --- a/patches/server/0086-Entity-lifespan.patch +++ b/patches/server/0086-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 ac170c62b053e6a56ce6792d243722447565f333..e5092da7731a3fe449d6f4c6ccae2283665edb08 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/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index a9302e2d1..40bdba8fb 100644 --- a/patches/server/0087-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0087-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 { diff --git a/patches/server/0100-Add-no-random-tick-block-list.patch b/patches/server/0100-Add-no-random-tick-block-list.patch index 35cc25be0..f859b28a8 100644 --- a/patches/server/0100-Add-no-random-tick-block-list.patch +++ b/patches/server/0100-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 2048b6f05d68eb31154f4a4c36ff8fa9ee225434..ff33ad8917c6325ee6d73cbb3473dc390e49d7cb 100644 +index 12bac4dbf7164c4d674897ed067958965a862864..cbce2dec89dbf86e619d1d7721f53946f4a72929 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 { diff --git a/patches/server/0104-Ridables.patch b/patches/server/0104-Ridables.patch index f12719f54..581ac80d6 100644 --- a/patches/server/0104-Ridables.patch +++ b/patches/server/0104-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 ff33ad8917c6325ee6d73cbb3473dc390e49d7cb..19c2a278ec13efc64c683d63aed5b4f1dd7a4a72 100644 +index cbce2dec89dbf86e619d1d7721f53946f4a72929..83f3250b2e9661bb1c0f8adaf02c91d04a15853f 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 ff33ad8917c6325ee6d73cbb3473dc390e49d7cb..19c2a278ec13efc64c683d63aed5b4f1 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 e5092da7731a3fe449d6f4c6ccae2283665edb08..851d4ac34feb94f0cd4ba8a5399093dfa40ce1cd 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); @@ -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 diff --git a/patches/server/0110-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0110-Allow-toggling-special-MobSpawners-per-world.patch index e75877502..02cfbd561 100644 --- a/patches/server/0110-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0110-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 19c2a278ec13efc64c683d63aed5b4f1dd7a4a72..e024b35e8d2f96d2141204ef79f595a8ea13e90c 100644 +index 83f3250b2e9661bb1c0f8adaf02c91d04a15853f..6340831852f07af8d93a4d0a3605d7b1b2f5d009 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/server/0119-Configurable-daylight-cycle.patch b/patches/server/0119-Configurable-daylight-cycle.patch index 9847802ab..0aa2e80f2 100644 --- a/patches/server/0119-Configurable-daylight-cycle.patch +++ b/patches/server/0119-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 e024b35e8d2f96d2141204ef79f595a8ea13e90c..587bbd1b4cce7cc5ee30471e86c4fe56362b92b8 100644 +index 6340831852f07af8d93a4d0a3605d7b1b2f5d009..f6d6387588f98049a2e94e73edee14250a6efb9e 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; diff --git a/patches/server/0123-Add-tablist-suffix-option-for-afk.patch b/patches/server/0123-Add-tablist-suffix-option-for-afk.patch index dcf7ec760..b4e613ac2 100644 --- a/patches/server/0123-Add-tablist-suffix-option-for-afk.patch +++ b/patches/server/0123-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/server/0139-Add-boat-fall-damage-config.patch b/patches/server/0139-Add-boat-fall-damage-config.patch index 025b8ee47..163a33cf9 100644 --- a/patches/server/0139-Add-boat-fall-damage-config.patch +++ b/patches/server/0139-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/server/0148-Spread-out-and-optimise-player-list-ticks.patch b/patches/server/0148-Spread-out-and-optimise-player-list-ticks.patch index 93161fd25..874c857f7 100644 --- a/patches/server/0148-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/server/0148-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/server/0151-Configurable-entity-base-attributes.patch b/patches/server/0151-Configurable-entity-base-attributes.patch index 02e5324de..5a5afafa4 100644 --- a/patches/server/0151-Configurable-entity-base-attributes.patch +++ b/patches/server/0151-Configurable-entity-base-attributes.patch @@ -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/server/0154-Implement-TPSBar.patch b/patches/server/0154-Implement-TPSBar.patch index 9402e5439..79c3a0178 100644 --- a/patches/server/0154-Implement-TPSBar.patch +++ b/patches/server/0154-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/server/0156-PlayerBookTooLargeEvent.patch b/patches/server/0156-PlayerBookTooLargeEvent.patch index 35723b773..b10aa13ca 100644 --- a/patches/server/0156-PlayerBookTooLargeEvent.patch +++ b/patches/server/0156-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 851d4ac34feb94f0cd4ba8a5399093dfa40ce1cd..da95a9e8870da7002c6ef47fc48ead32f3ab4856 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 851d4ac34feb94f0cd4ba8a5399093dfa40ce1cd..da95a9e8870da7002c6ef47fc48ead32 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 851d4ac34feb94f0cd4ba8a5399093dfa40ce1cd..da95a9e8870da7002c6ef47fc48ead32 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/server/0166-Fix-stuck-in-portals.patch b/patches/server/0166-Fix-stuck-in-portals.patch index b463400a8..d99b2233c 100644 --- a/patches/server/0166-Fix-stuck-in-portals.patch +++ b/patches/server/0166-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/server/0171-Add-unsafe-Entity-serialization-API.patch b/patches/server/0171-Add-unsafe-Entity-serialization-API.patch index 2cd8b9297..6d542759f 100644 --- a/patches/server/0171-Add-unsafe-Entity-serialization-API.patch +++ b/patches/server/0171-Add-unsafe-Entity-serialization-API.patch @@ -46,7 +46,7 @@ index a80f664d2cf713fd751421be3735e2f4779f0056..6c37bf58bd269c2d7e1c84e5791e8245 // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index eba28b9c5cb87dea09bf8430d253725f585f87b9..609eda567751b2f1cf74e9f090ca5cb0c1d771cc 100644 +index 38e1bd3893b9dfcf1bac1333d06b4e9792793ec6..05d0d2e5bb10bb002c8d7d4783a144ec35e4550f 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -390,9 +390,14 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0174-Dont-run-with-scissors.patch b/patches/server/0174-Dont-run-with-scissors.patch index 84d48e240..ce15e0a07 100644 --- a/patches/server/0174-Dont-run-with-scissors.patch +++ b/patches/server/0174-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 da95a9e8870da7002c6ef47fc48ead32f3ab4856..6672858b163aa9d7c51777f9a0a45f701f6e9ac8 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/server/0178-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0178-Config-to-ignore-nearby-mobs-when-sleeping.patch index d1855d41d..4a38e87ad 100644 --- a/patches/server/0178-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0178-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/server/0184-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0184-Config-to-make-Creepers-explode-on-death.patch index ed80618c4..76c83cf7e 100644 --- a/patches/server/0184-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0184-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/server/0187-Config-for-skipping-night.patch b/patches/server/0187-Config-for-skipping-night.patch index 565fdd2d0..fc005f784 100644 --- a/patches/server/0187-Config-for-skipping-night.patch +++ b/patches/server/0187-Config-for-skipping-night.patch @@ -5,7 +5,7 @@ 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 587bbd1b4cce7cc5ee30471e86c4fe56362b92b8..32b169df6041ede4d8512b471ebc9da40493c99e 100644 +index f6d6387588f98049a2e94e73edee14250a6efb9e..b97cd15382833dd119d2c6c9930698f3645892c4 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -1028,7 +1028,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {